I changed my license

cover image for I changed my license

In the last 28 years of publishing software, I’ve had three distinct eras of software licensing. All of my recent stuff is available under the European Union Public License 1.2, and I thought to explain why.

Midgard was all LGPLv2. This was a simpler time, and there weren’t that many free software licenses around. Since Midgard was a web framework, using a weak copyleft license felt like the right thing to do. The example website shipping with Midgard was X11 licensed.

When I started working more seriously with JavaScript around 2011, I switched to the MIT license. This was a “do whatever you like, just don’t sue me” sort of a simple affair favored by the NPM package ecosystem. Easy interoperability, no hooks attached.

After we closed Flowhub, there were a few years of hiatus where I published almost no software. Either because it wasn’t feasible due to my work situation, or because I was busy with the boat.

Enter EUPL

This year I decided to switch my “default license” to EUPL-1.2. This is an OSI-approved free software license created and published by the European Union. And it is quite a divergence from the licenses I’ve used in the past. EUPL is a strong copyleft license that closes the “SaaS loophole” by requiring reciprocal licensing regardless of how the software is distributed.

Over the years it has been clear that we in the “open source” camp (as opposed to the “free software” camp) were wrong all along. We won the debate, and gained little for users or developers. All that our efforts did was to make it easier for big corporations build things more cheaply and for billionaires to become trillionaires.

And so it is time to stop messing about with permissive licenses. If corporations don’t want to use our software under our terms, they are free to spend the effort or tokens to build their own.

The fact that EUPL has legally valid official translations to 23 languages also doesn’t hurt in a world where most of software is built and used in the wider world outside of the Valley.

Here are some things I’ve already published under EUPL:

  • reticulum-js: JavaScript implementation of the Reticulum mesh networking protocol
  • dacar: decentralized authorization system built on Reticulum
  • signalk-energy-predictor: prediction system for boats powered by renewable energy
  • offshore-blogging-system: tool for publishing blog posts and downloading weather data over InReach satellite text messages

In addition the new rewrite of NoFlo Development Environment is being made under EUPL. NoFlo itself will remain MIT-licensed, as it is a pre-existing project with plenty of 3rd party contributions.


Read more Flow-Based Programming posts.