qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
	Wenchao Xia <xiawenc@linux.vnet.ibm.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC] introduce a dynamic library to expose qemu block API
Date: Fri, 13 Jul 2012 10:16:11 +0100	[thread overview]
Message-ID: <20120713091611.GC15503@stefanha-thinkpad.localdomain> (raw)
In-Reply-To: <4FFBD6F1.90403@redhat.com>

On Tue, Jul 10, 2012 at 09:17:05AM +0200, Paolo Bonzini wrote:
> Il 10/07/2012 07:04, Wenchao Xia ha scritto:
> > 于 2012-7-9 17:13, Paolo Bonzini 写道:
> >> Il 09/07/2012 10:54, Wenchao Xia ha scritto:
> >>> Following is my implementing plan draft:
> >>>    1 introduce libqblock.so in sub directory in qemu.
> >>>    2 write a nbd client in libqblock, similar to qemu nbd client. Then
> >>> use it to talk with nbd server, by default is qemu-nbd, to get access
> >>> to images. In this way, libqblock.so could be friendly LGPL licensed.
> >>
> >> Did you actually assess the license situation of the block layer?
> >> block.c and large parts of block/* are under a BSD license, for example.
> >>   If the library only has to support raw files, it might do so using
> >> synchronous I/O only.  This would remove a large body of GPL-licensed code.
> >>
> >   If the library was built as nbd-client communicating with nbd-server,
> > which then employ the BSO licensed code, could the library ignore the
> > server side's license problem?
> 
> Yes, but if your first worry is the legal problem you are doomed to
> design an awful library.
> 
> > The reason using nbd-client approach are:
> > work around qemu block layer license issue and easy to implement
> 
> "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.

Using NBD allows us to focus on the library API instead worrying about
untangling the block layer.  If the library becomes useful it may be
worth fully moving the block layer code over into the library.

I think it makes sense to hammer out the library first before going down
a long road of internal QEMU refactoring before we know whether the
library will take off.

Stefan

  reply	other threads:[~2012-07-13  9:16 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-09  8:54 [Qemu-devel] [RFC] introduce a dynamic library to expose qemu block API Wenchao Xia
2012-07-09  9:13 ` Paolo Bonzini
2012-07-10  5:04   ` Wenchao Xia
2012-07-10  7:17     ` Paolo Bonzini
2012-07-13  9:16       ` Stefan Hajnoczi [this message]
2012-07-13  9:51         ` Paolo Bonzini
2012-07-13 11:33           ` Paolo Bonzini
2012-07-13 15:03             ` Michael Tokarev
2012-07-13 15:17             ` Blue Swirl
2012-07-13 17:07             ` Stefan Weil
2012-07-13 22:55             ` Lluís Vilanova
2012-07-16 10:39               ` Stefan Hajnoczi
2012-07-23 11:55                 ` Lluís Vilanova
2012-07-23 12:09                   ` Paolo Bonzini
2012-07-24  9:33                     ` Lluís Vilanova
2012-07-16  8:16             ` Wenchao Xia
2012-07-16  8:19               ` Paolo Bonzini
2012-07-18  8:51                 ` Wenchao Xia
2012-07-18  9:03                   ` Paolo Bonzini
2012-07-18 15:28                     ` Kevin Wolf
2012-07-18  9:41                   ` Stefan Hajnoczi
2012-07-18 10:42                     ` Paolo Bonzini
2012-07-18 12:50                       ` Stefan Hajnoczi
2012-07-18 13:51                   ` Andreas Färber
2012-07-18 13:55                     ` Kevin Wolf
2012-07-18 13:58                   ` Daniel P. Berrange
2012-07-18 14:02                     ` Paolo Bonzini
2012-07-18 14:12                       ` Daniel P. Berrange
2012-07-18 15:23                         ` Kevin Wolf
2012-07-18 15:35                     ` Daniel P. Berrange
2012-07-19 11:37                       ` Paolo Bonzini
2012-07-20 11:38                         ` Daniel P. Berrange
2012-07-20 11:53                           ` Paolo Bonzini
2012-07-23 18:15                   ` Blue Swirl
2012-07-25  8:08                     ` Wenchao Xia
2012-07-09  9:27 ` Daniel P. Berrange
2012-07-10  5:37   ` Wenchao Xia
2012-07-10  7:18     ` Paolo Bonzini
2012-07-13  9:12       ` Stefan Hajnoczi
2012-07-13  9:16         ` Daniel P. Berrange
2012-07-13  9:47           ` Stefan Hajnoczi
2012-07-16  7:48           ` Wenchao Xia
2012-07-09 14:36 ` Christoph Hellwig
2012-07-10  5:42   ` Wenchao Xia
2012-07-13  9:13   ` Stefan Hajnoczi
2012-07-13  9:27     ` Christoph Hellwig
2012-07-13  9:43       ` Stefan Hajnoczi
2012-07-13 10:42         ` Kevin Wolf
2012-07-13 10:55           ` Christoph Hellwig
2012-07-13 11:19             ` Kevin Wolf
2012-07-16  7:55       ` Wenchao Xia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120713091611.GC15503@stefanha-thinkpad.localdomain \
    --to=stefanha@linux.vnet.ibm.com \
    --cc=aliguori@us.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=xiawenc@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).