Are companies people? For free/open-source licensing purposes? Should they be?

Free and open-source software is great. For example, large companies gain the following freedom:

“The freedom to distribute copies [to some other large corporation for free] so your large corporation can help your neighbor large corporation”.

Governments have this freedom:

The freedom to distribute copies of your modified versions to other governments. By doing this you can give the whole community of governments [in the world, democracies and dictatorships alike] a chance to benefit from your changes.

Ahem? Who am I kidding? How likely is either of those as a motivation for large corporations or governments?

Well, I am being a bit peculiar about what I’m picking on, but I believe I am correct. According to Richard Stallman, the patron saint of the movement, free software needs to exist because it gives us the following four freedoms:

  • The freedom to run the program as you wish, for any purpose…
  • The freedom to study how the program works, and change it so it does your computing as you wish…
  • The freedom to redistribute copies so you can help your neighbor…
  • The freedom to distribute copies of your modified versions to others … By doing this you can give the whole community a chance to benefit from your changes…

Who is “you” in all of this? Well, this reads like it’s meant to be you and me, and other people like you and me. We all like to have those freedoms, and are glad to help out our neighbors, just as it says.

But that’s not the correct interpretation, which is provided by the legally-binding GPLv3:

Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

It’s no different in the open-source world. The Apache 2.0 license says:

“You” … shall mean an individual or Legal Entity exercising permissions granted by this License.

and further clarifies:

“Legal Entity” shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

The otherwise counter-cultural free software movement, and the quite-outside-capitalist/corporatist-mindset open-source movement have swallowed hook, line and sinker, this equivalency between human individuals, and legally made-up entities like corporations and governments. IMHO that equivalency was always wrong, but even more so here.

Why do they do this? As my example above shows when replacing the friendly “you” with “corporation” and “government”, it’s completely ridiculous to apply those freedoms to profit-maximizing companies and warfaring countries!

I’d like to float a trial balloon, and launch two new licenses for software:

  1. The Human-only Public License (HPL). It’s identical to the General Public License (GPLv3), with a single, simple change to the line I quoted above. It now reads:

    “Each licensee is addressed as “you”. “Licensees” and “recipients” are individuals, and cannot be organizations.

  2. The Human-only Apache License (Hpache 2.0). It’s identical to the Apache License (Apache 2.0) except for a similar change. It now reads:

    “You” … shall mean an individual (but not other Legal Entity) exercising permissions granted by this License.

These licenses seem to reflect the spirit of the four freedoms better.

I do not believe that these new licenses should be applied everywhere. For example, the Linux kernel, or infrastructure software like Apache Kafka are very well served with the GPL and the Apache license, respectively.

But there are places where these human-only licenses could be very useful, not the least to create new funding opportunities from companies with money for free / libre / open-source projects.

Many such projects are funded by good-natured geeks who are foregoing high developer salaries for so many hours a week because they like “helping their neighbor” who is a human being just like them. Maybe some also like to “help [for free] their neighbor large multi-national” (with the million-dollar CEO bonuses for laying off employees just like them). But I somehow doubt that. So I would expect they would welcome an opportunity to differentiate.

In practice, the following would happen to projects that used such a human license:

  • For individuals, nothing changes. The code is available in source, it can be forked, shared, remixed etc. It’s just as free (as in beer) and free (as in speech) as it was before — the original aim of those four freedoms quoted above, I believe.
  • Corporations, governments and other organizations cannot do anything with the code unless the developers let them by offering them a different license. They might do that if they share with the developers some of the economic advantages they get from using the software. For example, a license for them could require them to send cash to the project. Or a certain amount of in-kind contribution to the code by company engineers. Each project can decide what that is. Or decide that no, this code is simply not meant to be used for anybody other than humans, acting on their own agency.

It has always grated me that Amazon, to pick an example, has gained billions in benefits from using open-source code while contributing back much less. This is a form of exploitation of individual developers by large companies. It does not sound right. These new licenses could help fix this problem.

What do you think?