There were a number of legal issues we worried about recently:
- We were not sure if the number of used 3rd party libraries (and therefore the number of different licenses) caused a license clash (incompatible licenses).
- We were not sure if we could license the engine core (written in C++) under GPL while switching to LGPL for the engine extensions (which are written in Python).
Our motivation behind considering this switch is that the current GPL license for engine extensions would force game developers who use FIFE to put all their python code under GPL as well. As we assume that they'll write the majority of their game mechanics in python, that would surely be a drawback for indie developers who would need to allow others to use their gameplay code even if they created these engine extensions "from scratch".
An example would be an indie developer who writes his own maploader in python for his game. Even if he completely wrote it from scratch without using any of the existing maploader code he would still need put this maploader code under GPL as all
Python code that works together with the engine core needs to be published under the same license.
We decided to get in contact with the software freedom law center
(called "sflc" in the rest of this thread) to clear up our questions. I had the chance to attend a meeting with one of the sflc employers before christmas and here are the summarized results:
- All currently used licenses are compatible with each other, so there is at least no need to worry concerning this aspect.
- Assets (maps, audio files, video files, graphics) can be licensed differently; we would need to find a way to store dialogue text in separate files (not in the python ones) to ensure that dialogue text falls within the category of separate content. If dialogue text is stored in the Python files, it must be seen as engine extension code and therefore be published under GPL.
- The python extensions are a derivative work of the C++ engine core as SWIG parses the C++ code to create the wrapper files. Therefore engine core AND engine extensions need to get published under the same license at the moment.
So now we got a bunch of different options and I would like to have feedback from all developers what option they prefer:
1. Switch to LGPL for engine and extensions. Issue: some of the contributors prolly won't agree to this change; I remember that at least Chris (who wrote a fair share of the initial engine core code) didn't like the idea of switching to LGPL in the past.
2. Switch to GPL + exception (engine core gets licensed under GPL, introducing exception that the engine extensions get licensed differently). This option was proposed by the sflc employer. We would keep the engine core under GPL but add an exception to the license to ensure that game developers could publish their engine extensions under a different license. The sflc would help us with the wording of this exception to ensure that we don't run into legal issues. We don't know if all contributors would agree to moving to such a modified license though it seems more likely than a complete change to LGPL to me.
3. Last but not least we could simply stick to GPL for engine core and the extensions in case we feel that a switch process is not worth all the hassle. Indie developers could be scared by GPL for the engine core as well and would favour writing their own engine instead so do we really increase the attractiveness of FIFE for indie developers by just changing the license of the engine extension code?
As this is one of the most important decisions (prolly along the lines of switching from Lua to Python scripting) I would appreciate every feedback concerning it. If you need more information to make an informed decision, every developer (not only the currently active ones!) can get access to the whole log of the conversation with the sflc employer. I am not allowed to post it at the forums in public as the sflc asked me to just send it to developers in personal.
Feedback please :-)