On Thu, May 17, 2012 at 11:41 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: > To help me better understand, what would >>> be the terminology used for the explanation between what I would call >>> "source code" licensing, and "project" licensing? Also, where in the code >>> (or rather what file) can I see this distinction? It seems like something >>> critical to be aware of, and I'd like to avoid missing something like this >>> in the future as I give advice on what software we can use. > > Roughly speaking, each file has its own license. So you can take for > example vl.c or tcg/* and use it in a proprietary program, because those > are under a non-copyleft license. You cannot do the same for > event_notifier.c, because it is released under GPLv2 or later. > > For the project to be distributable at all, there has to be a license > that is compatible with all the others: such a license has to allow all > restrictions imposed by the other licenses used in the project, and all > other licenses have to allow all restrictions imposed by such a license. > For QEMU this license is the GPLv2.
Strictly speaking it must be GPLv2 with exceptions/restrictions. The code can not be moved freely between GPL and BSD licensed files. Why the GPL->BSD move is illegal is obvious. The BSD->GPL move is not allowed because of the : " * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software." clause of the BSD license. So the result of GPL and BSD intersection must be GPL with some files licensed under BSD. >>> If you would help clarify a separate point, I would be grateful. As I >>> understand it, I am able to modify qemu for my own purposes (like testing >>> the filesystem integrity inside a backup image by using guestmount to mount >>> it). How much of that work (source code, principles, explanations, ect) can >>> I share, and with whom can I share it with? > > Principles, explanations can be shared with whoever you want, however > you want. Patches are more of a grey area and I suggest you consult a > (good) lawyer. > > Remember that the GPL only becomes relevant once you start distributing > code. As long as you share the changes within your company for example > you are safe. Here is what the GPL FAQ says: > > Is making and using multiple copies within one organization or > company “distribution”? (#InternalDistribution) > > No, in that case the organization is just making the copies for > itself. As a consequence, a company or other organization can > develop a modified version and install that version through its own > facilities, without giving the staff permission to release that > modified version to outsiders. > > However, when the organization transfers copies to other > organizations or individuals, that is distribution. In particular, > providing copies to contractors for use off-site is distribution. > > What you suggested with run-time linking sounds like you are adding a > functionality that is totally useless to the general public. Those > people who are able to combine it with the shared library could use it > as in the above answer without distributing the result. > > Morally it's wrong, but a copyright holder cannot stop you on moral > grounds. Legally, you should consult a lawyer. Practically: > > - if you go with iSCSI or something like that you would provide the same > functionality to your customers, keep clear from legal grey areas, and > the QEMU community probably could not care less. > > - if you go with a clean reimplementation under the GPL you would > provide the same functionality to your customers, keep clear from legal > grey areas, contribute to QEMU positively, and perhaps get some > advertising for your product. > > Paolo -- Regards, Artyom Tarasenko solaris/sparc under qemu blog: http://tyom.blogspot.com/search/label/qemu