What license to choose?
Crap… I have hit a big roadblock when I’m on my way to release my first open source project. I have to choose a license. I thought it would be fairly easy but after talking to two of my colleagues it turned out it wasn’t as easy as I thought.
I had for a time taken GPL as some kind of standard because many of the tools I use are under GPL license. The problem with GPL was however that it “rubs off” on other software and since my application is going to have plugins it wouldn’t work. The reason is that I don’t want to force the user to release the source code for the plugins, I want authors to be able to sell them if they like or to provide a plugin as part of their product. I was thinking about LGPL but I don’t understand it all.
This made me look at a BSD license but then I found out that any company could potentially just fork my code and release it under another name and probably change the license as well. Needless to say I didn’t like that… it may work for people who don’t care about companies swooping in and reaping the benefit of people who worked hard on an really good application and then just sell it.
What about Mozilla license then? Well I’m currently looking at it and it looks good… but there are two problems 1) it is long and 2) I don’t understand it all. This is one of the biggest benefit of BSD license which I understand but don’t fully like for this particular application. Honestly these licences are crap… I have officially started to hate lawyers and law stuff because of this… Why can’t they just write in plain English (or what ever language they prefer). What does it mean to sub license? Does it mean you can license your modification under a stricter license? I’m all too confused by this.
MIT seemed like a choice (during another discussion) until I realized it was just BSD.
This is what I want:
- I have a framework which is completely open. If someone changes anything in that framework then they can redistribute that change but they can not close the source and they must notify me (“the author”). They can not sell any part of the framework and I have the right to add any change that they put into their branch of the code without limitations. They can not say they made it as initial author, they can say they forked it. They can not remove the initial author’s name from the source code but they can add their own.
- In the framework that have plugins. Plugins are clearly specified through an API. Everything on the framework side is the framework (duh) and everything else that the framework calls is the plugin (again; duh). If a plugin is developed then the license of that plugin can be what ever the author wants except for a license that would somehow possible affect either the framework or other plugins.
- I reserve the right to be wrong and can change anything I want without notice and I am not responsible for anything at all.
Bah… what to choose? This was harder then I thought.
I just realised, I’m presenting att http://fscons.org tomorrow… they MUST be able to answer this kind of stuff. Follow-up post tomorrow!