We seem to be forgetting the “open” part of open source. Over the past year, the industry has scrummed over re-licensing open-source software under proprietary terms to enable vendors to uniquely monetize it. Whatever one’s views on this topic, it’s fairly easy to understand: It’s just business.
But Seth Vargo’s decision to spike his own code (Chef Sugar, a Ruby library) to protest Chef’s contract with US Immigration and Customs Enforcement (ICE) is something entirely different and has broad implications for open source that are hard to reconcile. It is almost certainly true that every single open-source developer who contributes to any infrastructure software of sufficiently broad adoption enables activities to which she’d object if only she knew about them.
So what should she do?
Open is as open does
For some reason, “open” has become increasingly hard to understand. Erica Windisch, for example, has insisted that we need “Open source licensing terms that prohibit utilization by contractors working with government contracts and entities.” Again, it’s easy to see why someone would want to do this: No one loves to see families ripped apart, but it’s worse to feel like your software is somehow contributing to that problem.
The problem with Windisch’s suggestion is that the result will not be open source.
Gordon Haff was first to point this out to her, noting, “At that point, you’re basically prohibiting use by anyone who touches the government in some way, including organizations like universities. By all means, write a narrow use restricted license but it’s not open source and no one will use or contribute too.” Rochelle Grober then added an interesting side note: “Proprietary licenses [were] how people and companies in the past exercised their ethics. No sales or contracts to those who don’t represent the company’s principles.”
It’s ironic, but it’s true: If you want to block a specific government agency or someone else, you need to have a proprietary license. You cannot block objectionable uses of your software and still have it remain open source.
Open use is the price we pay for open source
Of course, you can be an open-source company and choose not to sell to an organization you find objectionable. At various open-source companies for which I worked, we refused to do business with pornography or gambling companies, for example. Chef, in like manner, could choose not to do business with ICE. That said, at my open-source companies, we could not block those same organizations from using our open-source software (and some did), just as Chef couldn’t block ICE from using its open-source code.
Why? Because…open source.
In fact, if you’re in open source, as Cindy Sridharan has observed, it’s basically guaranteed that someone, somewhere that you don’t like—some organization that you find objectionable—is using your software. Vargo happened to hear about ICE using his code, but it’s almost certain that other organizations he doesn’t like have also been using his software, unbeknownst to him. That’s how open source works—anyone can download it.
Now imagine if every developer channeled their inner Vargo and started pulling their code because they don’t like this or that organization—it would completely dismantle the open-source world that so many of us depend upon. No more Linux, MySQL, Kubernetes, or [name your favorite infrastructure software].
We can’t control outcomes and keep our code open source. We can only contribute the best code we can and hope that, on balance, much more good comes of it than bad. It’s the price of openness, and it’s worth paying.