Project Soon

FOSS and Licensing

(Modified: )

I have since I wanted to make this program open sourced contemplated over the best licensing for it. Not only have I skimmed through several license types, but also discussed with a multitude of people (sadly no lawyer). Just recently I went through what the existing mappers, those being released as FOSS, had and found three licenses: GPLv3, MIT and BSD. I also figured other issues that I needed to settle with licensing.

First off, the initial issue I found was license compatibility. While this issue should not be that big of an issue, I still spent some time going through all the libraries I used and shipped through the app. Most of them was MIT, and some was some variant of BSD, like zlib and libpng. All in all, those special modules was clear on that when I ship the program, I should include the license, something I will try to do asap.

Second was multi-licensing. The app is split up into three projects, being the main library, cli and gui. Due to how the GUI and CLI is the actual visual part of the app, it wouldn’t be bad if someone used it for their own mapper, but it wouldn’t be compatible in most cases. Therefore a more loose license could be applied. The library on the other hand is very easy to strip and use for ones own purpose. It was assumed that it required a more strict licensing to avoid people using for commercial use, but I later found that I cannot enforce this anyway. I then concluded, to make it easier for myself, to pick one license for the whole project and maybe change it later if needed.

Thirdly, liability and warranty is a must, to protect myself from being sued.

Finally, as I looked through existing mappers, it was interesting finding that most was GPLv3. I believe the case for this is to preserve them owning their project and avoid people taking advantage of it being freely available. While I dislike following the group preassure, I think that GPLv3 is the best license for my project for now, and as long as I am the only contributor, I doubt I will have any issues with it.

I have been suggested once to use AGPLv3, but I felt it being too strict, and my app does not use network (yet). One mapper also was using Apache License 2.0, but that is even a lighter license.

The most fun I found while looking through licenses was that one of them included an additional condition, namely if you used the module in the military field, you would kill a bunny.

Edit: I should have looked into this further, but if I did GPLv3 to my library, the CLI and GUI would automatically use that as well. The other option should have been to use MIT for the library and GPLv3 on CLI and GUI. I think using GPLv3 on all of them is way easier, though.