if you do not care about narratives just jump to ‘the solution’
There are three types of open source projects:
- Libraries/tools developed commercially which are open sourced to get help and/or goodwill from the community. These libraries/tools often tend to be big and the amount of community input can be minimal.
- Trivial libraries/tools that anybody can make and are shared publicly as a common courtesy. These are often developed whilst working for companies, but are too small and trivial for the company to care about or to be monetizable.
- Big libraries/tools developed in programmers free time.
Now, let's get the first and second case out of the way: In the first case companies will often release the project under a super free license because that aligns with their goals: getting as much contributions and goodwill as possible from the community. The only relatively rare exception here is if the product is available for commercial use under a different (for example JetBrains IntelliJ). The second case will also result in super free licenses often, because if it’s not free enough somebody else will simply make another version that is free enough.
The third case is where it gets hard. Whereas the reasoning for open sourcing a product is clear in the first two cases in the last case it differs a lot more. Personally I want others to enjoy my work and if it’s used non-commercially I wish you the best of wishes with it. It’s when a programmer gets paid by a company for work that I did in my free time that I feel somewhat more hesitant. It’s not that I do not want others to use my projects, but I do think it’s fair that if you as a programmer get paid for your time and this saves you time that at least a bit will trickle down to me.
I release my bigger projects under a GPL license. This means that consumers of these projects will have to contribute back to the community by making their projects open source as well. However, I will also offer the option that for any donation - be it big or small - I will grant them the right to use the project without this restriction. Once I am not the single largest contributor I will either relicense as LGPL or change the donations to a charity. So, to make this possible I need contributors to grant me a generic right to relicense their contributions under any license and the discretion to license the project as a whole to any parties under those licenses. I need this to be able to grant companies the right to use it commercially or to be able to change the license to LGPL once anybody makes a big enough contribution to warrant this.
So, for me this isn’t really about earning money and believe me, it’s not earning me a lot of money either… so I am not going to hire a lawyer to write me up nice contracts and licenses and all that. Practically that means that there will no-doubt be holes in this construction ‘evil’ parties could misuse, but honestly, this might be naive, but I will just be upfront about my intentions and requirements and I will trust the goodwill of everybody who explicitly agrees to this construction.