After a very tough discussion last week, I want to explain a fundamental rule of FOSS (Free and/or Open Source Software). It is called the "no field of use restriction" rule. What it means is that when you publish code under an accepted Free Software or OSI approved Open Source license, every downstream recipient is free to use the code for whatever they want to use it for. It is a very important but often attacked rule. 1/n
If you would restrict the use of your code, you make a moral decision. But licenses are in the opinion of both the FSF and the OSI not the place to make that choice. Licenses are defined and limited by the laws and rules on copyright/droit d'auteur. Moral choices are simply out of scope for that regime. Like to or not, it's a fact, IMHO. 2/n
Software is universal. Your solution to recognising objects in a video stream with low latency can be used, as you intended, to help with sorting good from bad vegetables. Or it could be used to identify targets by a missile flying at high speed. These are extreme examples of Field of Use. The question becomes: Should a license allow the one but not the other? Of course we all want that to be possible. But. 3/n
Is it really open and free if you make that kind of restrictions? Both the FSF and OSI, after long and emotional discussions, decided no. That decision cannot be made on the copyright level that licenses are based upon. It was a tough decision. 4/n
But it was a wise decision, IMHO. Think of the faux open licenses that exist out there. Licenses that give you access to the source code but tell you that you cannot use it to build a service competing with the project owners. That's the other side of the choice. If use gets limited, Open looses. So field of use restrictions will always lead to less code being available to be re-used. That's why the "no field of use restriction" rule exists. 5/n
It is a high price to pay. And if you think it was the wrong choice, I totally understand. But in the bigger picture, abuse of code must be limited on a different level. You can always refuse to support use of your code in fields you do not want to support. But limiting access to the code should not happen. You share, you care. But your care has limits. That is YOUR decision. 6/n
So. To sum it up. Licenses are defined and limited by laws on intellectual property. Moral decision on who you accept and support in your community are a very different thing. Never conflate the two, if you want to be a good FOSS citizen. If you feel your code gets used in ways you cannot accept, exclude those that do it from your community. Let them fork, let them find their own community. It's the price you have to pay. Just be clear and open to your people on that. 7/n
Books can (and should) be written about this dilemma. My interpretation is very clear and a working solution. My code is free to all. My support is limited. If you want to use my code to do something I deem to be unacceptable, I will never stop you. But I will be free to ignore your bug reports and pull requests. 8/8
(outside of the thread) I know my position is not accepted by all. Again, I respect that. I came to my conclusion based on many years in FOSS. I know it is a tough decision. But I prefer to be honest, put on my flamewar vest and deal with the attacks. What I really want is for you to think. Come to your own conclusion. And stand by it. Is all.
@jwildeboer thanks for your thoughts. Curious what the discussion was - on fedi?
I am very skeptical that The Bad People will be put off anyone's code based on license: they typically have the money to reimplement or legally battle their way. This understanding informs my pragmatic support for Foss/public domain.
Sound very paternalistic to me - and even worse. "You are not a good citizen, if not following my rules - and of course only good citizens are legitimated doe citizen rights."
"Bad, bad boy! Again you choose a bad license. No dinner today."