Licensing above the Code/Content

2023.02.27

This idea first came to me when I was thinking about how to make free (as in freedom) or open software more sustainable. And later I read more and more news about free/open source developers’ struggle maintaining what they created.

The problem

A lot of organizations are not paying for the free/open source tools/content they use. Examples can be seen in the following list:

Comments from issues reported to the project in the second example:

I’m not presenting these to endorse/justify any party in these events. But we need to admit there are issues with the current situation. In a lot of these events, we see many people point to xkcd’s Dependency webcomic, which is quite true for many components in our computing environment.

My thoughts

I have read comment on twitter asking “Should countries subsidize open source like they often do with Science or Climate Change?”. My answer is that we may not need to, if we have a better licensing model.

In preventing companies from benefitting from but not contributing back to free/open source community, GNU Affero General Public License (AGPL) and GPLv3 are better options to LGPL, Apache, BSD or MIT licenses. Someone even called permissive licenses like BSD or MIT “Cuck Licenses”.

But I think we can even do better than AGPL/GPLv3, by introducing a new licensing model that reflects “with great power comes great responsibility”. Big companies with billions of valuation surely have greater power over individual devolopers, so they should bare more responsibilities in making our society better. Since I’m not a lawer, the following are just suggestions, but I think lawers at Free Software Foundation should consider these suggestions.

A new licensing model

Instead of digging into technical details about how code/content are used like linking or inter-process-communication (IPC), et cetera, I think we should focus on various criteria such as number of employee/user of the organizations, number of employees having access to the free/open source components or other measurements that organizations advertise about their success, either to attract investors, or to demostrate that they have great achievements. Licenses should be created which required payment from client organizations, and the amount of payment will be derived from those measurements. Let’s call these Spider-Man licenses in this article.

With Spider-Man licenses, we can design simple mathematical functions to make payment increase smoothly when the impact of the code/content increase (eg. no sudden increase/drop when measurements reach a certain figure), and possibly capped when the figure is very large. In any case, the amount of payment can be discussed. When the code/content reach a phase of tens of millions of users, payment for the code/content should allow the owners of the code/content to setup an organization (and hire people) to work full time on helping their users, independent of other (for-profit) companies.

I will give several rationales here on why/how these can be implemented.

One might argue that Spider-Man licenses are not enforceable. Like in the case of AGPL, outside party may not be able to peek into the code of a service in a legal way. I would admit that this may be true. But unless companies

facts about the company using open components will eventually be known to ousiders. So Spider-Man licenses are as good as AGPL on this ground.

Spider-Man licensing model can even prevent a logical circumvention. In such a case, a company can use an open source project by wrapping it in close source components, making it a “brain in a vat” of the closed parts. Although in such a case, what lawers argue about would be the definition of “use”.

If Wikimedia foundation is using Spider-Man licensing model, millions of users won’t see that big banner asking for suppport at year end. And yes, financial flow for Spider-Man licensed free/open source projects should be open for audit, just like government budgets should have been.

Afterword

I choose this title as an analogy to Leslie Lamport’s “Thinking above the Code” talk.

Just heard about Promodbus license used by libmodbus, I think it’s a good attempt.

Fun fact: I heard from people in a tech discussion group (where some may just be Tencent software engineeers) that, the protocol QQ used was badly designed, and the legacy code used there, is a pile of shit (or 屎山 in Chinese :lol:-), even if it is opened, developers may not like to work on it ;-)