[quote="Ashley":1zem8858][quote:1zem8858]Also: the split GPL/BSD licensing you describe makes a lot of sense-- it does seem though like this would possibly prevent, for example, copying OpenGL rendering code out of the IDE and into a hypothetical exe exporter?[/quote:1zem8858]
Each source file has a license pasted at the top - and the renderer code is intentionally licensed BSD as well, for this purpose.[/quote:1zem8858]
Oh, that's great! Thanks for explaining.
[quote:1zem8858][quote:1zem8858]Another small thing. A note in one of the files mentions GPL 3-- will it be GPL 3 only, then, or will GPL 2 be also available?[/quote:1zem8858]
I'm not actually clear on the difference between GPL 2 and 3 - if someone can describe exactly why GPL 3 would be a bad thing for Construct 2, I can re-license it to GPL 2.[/quote:1zem8858]
So, I will do my best-- Basically GPL 2 was very straightforward, it simply says that you may not distribute something based on the GPLed code unless you make the source GPL-available also. The goal of GPL 3 as I understood it however was that the FSF was beginning to get worried about various "backdoor" ways of closing off the openness of GPL code, such as patent nonsense, or putting the software onto hardware such as a Tivo or XBox which restricts what kind of binaries may be run (such that you could get the source to a piece of software, but not be able to compile or run it), or circumventing the GPL's requirements based on "distribution" entirely using a web service (that last thing they eventually addressed with a totally separate license called the AGPL). GPL3 therefore includes extra clauses to ensure source remains unencumbered even under unusual circumstances. However the criticism is that they went too far and added restrictions to GPL3 that either limit the freedom of code recipients or make it impossible to use GPL code at all in certain environments. For example the biggest criticism of GPL3 seems to be the new rules on patents; GPL2 had a simple rule that you simply were not allowed to use patent encumbered technologies in GPL code, however GPL3 in addition to this has an affirmative licensing clause where by distributing GPL3 code you are under certain circumstances actually granting patent licenses. This makes GPL3 radioactive for some businesses because by participating in distribution of GPL3 code they could be granting patent licenses accidentally. Of course patents are not very relevant to Construct, however a similar problem which may be more relevant is the elaborate "authorization keys" provision in section 6, which is intended to prevent the use of DRM and requires you for example to release any signing keys used to install a GPL3 program onto a device. So for example if the Construct2 IDE code is GPL3 then it would not be possible to run it on a piece of hardware that uses code signing, like an iPad or an XBox 360, because the GPL3 would require you to divulge the developer signing keys but under the iPad/360 developer agreements you would be barred from releasing (or may not even have access to) said keys. (Although note there is some controversy about using GPL2 software on iOS as well.)
Because of these new restrictions some projects have declined to move forward to GPL3, most notably Linux is only available under GPL2. The Linux developers describe their reasons for rejecting GPL2 here
(although note, that article was based on a draft version of GPL3 which may have been even more stringent); their general stance seems to be that the changes in GPL3 are not really necessary to ensure the freedom of software, and are more about using the wide install base of GPL software as a club to discourage certain unsavory software practices (submarine patents, software signing) which the FSF objects to as a political stance. I think I agree with what the Linux developers say here, but I find it kind of hard to say for sure if GPL3 is a good thing or not, which leads me to what I think the biggest problem with the GPL3-- I have had some trouble understanding exactly what it requires you to do! GPL2 is easy to understand and easy to follow. GPL3 contains many rules and some of them, it's ambiguous exactly when you are or are not in compliance. For this reason if no other I personally would be a little hesitant contributing to a GPL3-only project.
What I would suggest doing is what many projects do. Use this boilerplate from the GPL FAQ:
[quote:1zem8858]This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.[/quote:1zem8858]
If you use the "version 2, or at your option any later version" language, then this means that users can treat your software as being under version 2 or version 3 of the GPL depending on what works best for them (and there are
advantages to having the GPL3 option, for example it is compatible with the apache2 license where GPL2 is not). This gives your users maximum flexibility while still ensuring that your code retains GPL protections.
Now of course if there's some specific thing in the GPL3 you like then it is not a big deal, use the license you are comfortable with. But you seem to be saying that you weren't familiar with GPL3 specifically and just wanted some GPL license, in which case I think the "2 or later" standard is probably the way to go.
Hope this helps...