In my last job, I wanted to open source some code. What I wanted to open source was a collection of integration examples, so it used many JS frameworks from many sources, all of which were “Free” and/or “Open Source”. I followed the normal process, contacted the legal team, and sent them information on the code and the licenses of all of my JS dependencies.
It turns out, I had to remove large pieces of my code so that I was no longer using any copyleft licenses. This basically means that some stuff was GPL / LGPL, and we as a company couldn’t be associated with that code. At the time I didn’t realize there was a difference between “Free Software” and “Open Source”, and I was caught off guard by the fact some licenses were different than others, even though I had access to all of the source code. Why can’t I use “free software” however I want? If I want to give away a t-shirt I got for free, nobody is stopping me. That’s not illegal. It’s not even exploitative. So why can’t I give away free code however I want?
So I started reading up on copyleft, GPL, the FSF, and the philosophy over at GNU. The legalese isn’t entirely clear, but my interpretation is if you want to release your code, and you have a GPL dependency, you also need to release your code under the GPL. GPL spreads by attaching to other software, it’s a parasite, a “virus”. The intent is that nobody can charge for something that is “derivative” of free software, and because of that the amount and capabilities of free software will grow.
It does not accomplish that.
Instead, it forces people not to distribute code they may want to because they, or their company, do not want to be tied down to the restrictive nature of GPL. Practically every engineer works at some company and develops for their job, so they have to respect the legal terms of their company. The GPLs rules and requirements are shooting it in the foot, and are actively discouraging engineers from open sourcing software.
If you actually care about giving people the most powerful, free to use software, don’t use the GPL. Use MIT, or some other permissive license. Those let people do whatever they would like with the open source code, like something that is actually free.
References
https://github.com/github/choosealicense.com/blob/gh-pages/LICENSE.md
https://github.blog/2015-03-09-open-source-license-usage-on-github-com/
https://en.wikipedia.org/wiki/Viral_license
https://www.reddit.com/r/programming/comments/6jamm7/ballmer_linux_is_a_cancer_2001/