I am trying to understand when do the GPLv2 spreads from a program to its extensions and vice versa.

Everything I've read seems to say that if you use a module (shared library or any other "tightly coupled" interaction) under the GPLv2, then your program has to be under GPL v2 and vice versa: a module for a program under the GPLv2 has to be under the GPLv2.

This is what I understand from a theoeretical point of view. However, it appears that VirtualBox, which rely on KVM and therefore has to be -and actually is- under GPLv2, also has a proprietary Extension Pack.

So, what in the nature of this Extension Pack makes it possible for Oracle to distribute this Extension Pack under a proprietary licence considering that this package heavily interacts with VirtualBox ?


First topic: Virtualbox does not rely on kvm to get stuff done. They have different source base, and even if they exchange patches, that does not makes them a derivate work of kvm.

Second point is that Oracle owns VirtualBox brand, so they can pretty much deal with licensing of "chunks" of that software(base, extensions, plugins, etc) the way they want. This allow them to keep virtualbox opensourced while develop a module that is proprietary. And if you take a look at the Licencing FAQ, this is pretty much what they state:

How is VirtualBox licensed?

The VirtualBox base package (i.e., everything but the VirtualBox Extension Pack) contains the full VirtualBox source code and platform binaries and is licensed under the GNU General Public License, version 2. You can distribute and modify the base package, provided that you distribute all modifications under the GPLv2 as well.

The VirtualBox Extension Pack is available under the VirtualBox Personal Use and Evaluation License, which is a free license for personal, educational or evaluation use, or an Enterprise License, which is for fee license that covers most other business uses.

More information about the Oracle VM VirtualBox Enterprise License for the VirtualBox Extension Pack can be found on the Oracle VM VirtualBox pages, which also contains a link to the Oracle Store where you can directly buy licenses. Please contact Oracle for additional information.

Oracle states clear that only the base package is GPLv2 and Extensions are nonfree.

This is why projects have a Development agreement on projects they create, or take ownership when they want to be the ones to centralize all issues, so they can "own" the code that you have contributed, but the trick here is that they have the power to change the license if they want. This is a trust relationship between the developers and the company/entity that now owns the code. Examples:

  • Canonical Contributor license agreement: In this case you have a company that wants to best centralize all ownership to better deal with contribution and licensing problems. You have to TRUST them when you develop code and give to them
  • FSF software ownership: In this case, you have a foundation that owns code for best interest of all, the same way they can change licenses whenever they want, it's up to them to ENFORCE GPL on derivated projects that are not compliant with.

Also, it is not uncommon that some companies dual-license its products. Artifex does the same thing with ghostscript. If you will develop a free software program AND you will not profit from it, you can use the GPL version of ghostscript. If you want to make proprietary software with ghostscript, you need to pay for a subscription.

And Federal Court decided that using a software that has a license is the same than accepting its terms(enforceable contract).

  • I get your point. Considering that they actually do not rely on other GPLv2 stuff for their software makes it acceptable that they can do what ever they want with their products. But then, when can we consider that A rely enough on B which is GPLv2 so that A has to be GPLv2 ? – MeatBoy Jun 28 '17 at 18:43
  • to make my answer short: it's the way Oracle want ... But this is not just them doing ;) – nwildner Jun 28 '17 at 18:44
  • 1
    @MeatBoy when it generates a derivative work i guess - copyleft.org/guide/comprehensive-gpl-guidech5.html - But EVEN THAT is a gray area on licensing.... Linux Kernel modules "could be" but are not derivative form Kernel itself. FSF states that if it is explicitly LINKING than it's derivative work, but also, the copyright owner CAN create an exception: gnu.org/licenses/old-licenses/… - Dealing with licenses is always a mess... – nwildner Jun 28 '17 at 18:53
  • 1
    I understand you. This will only change when LAW enforces what can be considered derivative work :) . And there are some incidents that happened between OpenBSD and Linux on wireless where both sides got code from each side and it ended up in a lot of flame: undeadly.org/cgi?action=article&sid=20070406104008 - undeadly.org/cgi?action=article&sid=20070913014315 - Not even the opensource community is clear from friction caused by code license – nwildner Jun 28 '17 at 19:04
  • 1
    True... One (the greedy company) tries to keep control on its code when the other (the nice guy) tries to prevent others from geting control on their code. It looks like mathematical duality ;) – MeatBoy Jun 28 '17 at 19:25

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.