Dolphin, the GameCube and Wii emulator - Forums

Full Version: Relicensing Dolphin: The long road to GPLv2+
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
AFAIK the main reason Dolphin needs to be GPLv3 is so that the Android version can continue to grow. If Dolphin stayed strictly GPLv2, then Android development would have to stop.

As for what the GPLv3 brings to the table that the GPLv2 doesn't have, AFAIK the main reason for the GPLv3 was to prevent "TiVoization" of software, which is so named because TiVo managed to use a loophole to violate the spirit of the GPLv2 without breaking the letter of the licence.

In short, the GPL says that if you use GPL software in your product, you can modify the software, but you must release the source code for any changes you make. TiVo uses Linux in its DVR firmware, so TiVo was required to release the source code for its DVR firmware (which it did); however, doing this potentially posed a problem for TiVo: if the source code for the TiVo firmware was available, then people could modify it to create custom TiVo firmware (e.g. to disable the requirement for having an active TiVo subscription) and then run that firmware on their TiVos. In order to prevent this, TiVo used special hardware restrictions in every DVR so that if a user tried to run unsanctioned firware, the TiVo would reject it. In this way, TiVo was able to technically respect the GPLv2 by releasing the source code for its firmware, but the company managed to prevent people from actually doing anything with that source code by making sure that no TiVo unit would let you run modified firmware that you built from the source code yourself.

The GPLv3 was devised to explicitly say that releasing the source code to your software isn't enough; you also can't employ hardware restrictions to prevent people from using your GPLv3 software.
So were I to make custom HD Wiis which were an x86-64 PC which you had to pay a subscription to use which ran a Dolphin derivative, but made the device self destruct if the compiled software didn't hash to one specific value, and release the source code for this self-destructing subscription Dolphin, how allowable would this be now? I'm getting the impression that a couple of weeks ago, this would have been fine, as we were GPLv2, and with just GPLv3 it wouldn't be okay, but with GPLv2+, do I have to adhere with the stricter or least strict licence? I don't fully see how we can make everyone happy - either we've just added new restrictions, or we've not gained the ability to link to software which doesn't want to end up as a dependency of kamikaze ransom Dolphin.
GPLv2+ means you can pick whichever you want.
Just to clarify, Dolphin moved to GPLv2+, not GPLv3.
(05-30-2015, 06:22 AM)AleronĀ Ives Wrote: [ -> ]AFAIK the main reason Dolphin needs to be GPLv3 is so that the Android version can continue to grow. If Dolphin stayed strictly GPLv2, then Android development would have to stop.

As for what the GPLv3 brings to the table that the GPLv2 doesn't have, AFAIK the main reason for the GPLv3 was to prevent "TiVoization" of software, which is so named because TiVo managed to use a loophole to violate the spirit of the GPLv2 without breaking the letter of the licence.

In short, the GPL says that if you use GPL software in your product, you can modify the software, but you must release the source code for any changes you make. TiVo uses Linux in its DVR firmware, so TiVo was required to release the source code for its DVR firmware (which it did); however, doing this potentially posed a problem for TiVo: if the source code for the TiVo firmware was available, then people could modify it to create custom TiVo firmware (e.g. to disable the requirement for having an active TiVo subscription) and then run that firmware on their TiVos. In order to prevent this, TiVo used special hardware restrictions in every DVR so that if a user tried to run unsanctioned firware, the TiVo would reject it. In this way, TiVo was able to technically respect the GPLv2 by releasing the source code for its firmware, but the company managed to prevent people from actually doing anything with that source code by making sure that no TiVo unit would let you run modified firmware that you built from the source code yourself.

The GPLv3 was devised to explicitly say that releasing the source code to your software isn't enough; you also can't employ hardware restrictions to prevent people from using your GPLv3 software.

Thanks for the Information. Is this the only benefit GPLv3 has over GPLv2 ? though I don't see how this is critical enough to stop development on the Android side.
Because it was breaking the license to continue working on the android port. I don't see how that is complicated.
The windows port links with several APIs which are not GPL, why is it considered unacceptable for the android port to do the same?
Some of them are Apache licensed and there's something in that license that prevent GPLv2 projects to link against them, I think...
tueidj: system provided libraries are an exception to the GPL. In general it's widely accepted that stuff like msvcrt or d3d are system provided, and there is a wide range of precedent for that. Random Android libraries that we want to use in Dolphin are not in the same situation (note, however, that the same situation would apply to us using the standard Android SDK/NDK, from my understanding of the situation).

In the future this license change will also allow us to integrate with OSVR, which is licensed under Apache 2.0.
(05-30-2015, 04:48 PM)tueidj Wrote: [ -> ]The windows port links with several APIs which are not GPL, why is it considered unacceptable for the android port to do the same?

From what I understand the GPL exempts you from having to provide the source code for those libraries, but you are still not allowed to link to those libraries if the licenses on them would affect your rights given under the GPL.

In other words, the System Library Exception exempts those libraries from the "infection" of GPL, but it does not allow those system libraries to infect the GPL.
Pages: 1 2 3 4 5