Free Software's Relevance in 2021

Posted on July 9, 2021 by Jack Kelly
Tags: coding, free-software

2020 was a bad year at the end of a bad decade for software freedom. This post discusses how software rules everyone’s lives, how bad the situation is for software freedom, why software freedom matters, and explains why I believe that free software developers should direct their efforts toward emerging language ecosystems.

Why Software Freedom Matters

Over the past eighteen months, there have been incredible restrictions placed on people’s freedoms of movement, speech, and association. To have any social contact at all, many people have been restricted to online interactions as their only social outlet, almost exclusively through proprietary software.

In Australia, we are required by law to report our personal movements to one or more “contact-tracing” platforms, even to visit the supermarket or have something like a normal social life. This forces people to interact with an enormous pile of proprietary surveillance software just to participate in society. Despite earlier promises to only be used for contact tracing, these databases have been used by police (as always happens). It should be possible to build these check-in systems in a privacy-preserving way, and for the public to verify they have done so. A sketch: store location history on the device, upload to contact tracers only with the person’s consent and only in response to contact tracing queries. Unlink PII (used for contacting exposed people) from user IDs (used to build the graph of exposures) and store it separately. Free software then allows citizens at least some confidence that the software has in fact been built in a privacy-preserving way.

We live our lives at the mercy of software, and have been doing so well before the pandemic. Some non-COVID examples:

Being able to inspect, modify and run software on your own terms is valuable to everyone as a matter of public interest. The Free Software Foundation outlines four freedoms for a program to be considered “free software”:

The Four Freedoms are not Enough

These days, the FSF’s four freedoms are not enough to ensure software freedom for users:

The Market will not Save You

For years, privacy advocates have been saying “if it’s free, you’re the product”. These days, not even paying will protect you:

Copyleft Software is not Attractive Enough

The FSF’s proposed solution is to release software under copyleft licences, so that user freedom is preserved as people share copyleft software with each other. In the old old days, system software from the GNU Project was a significant improvement over the UNIX vendor’s proprietary software. The software the GNU Project is most well-known for (system-level tools like coreutils) has since been thoroughly commoditised, and people these days don’t really say “I’d really love to use $AWESOME_LIBRARY; I’ll copyleft my own software so that I can.”

Suggestions

I’d love to set out a clear and simple plan to liberate the world through the power of copyleft. Unfortunately, all I can offer are a few suggestions. The overall idea: make copyleft software more powerful and easier to contribute to, so that it becomes more attractive for users and developers.

One: Make it Easier to Contribute to Copyleft Projects

The GCC Project recently relaxed its contributing requirements from “requires copyright assignment to the FSF”, to “provide Developer Certificate of Origin”. I am optimistic: the easier it is to contribute to copyleft projects, the more people will do it.

If you run a project and proceed on this path, I think it’s most future-proof to license individual contributors (and possibly the whole project) under the “or any later version”-style terms. This provides a mechanism to evolve the project licence without tracking down every single contributor each time you want to change.

Two: Copyleft Unique Software

If you publish a copyleft library in a crowded domain, people can flinch away and select an alternative. If you build something unique and different, people are more likely to pay the copyleft “price of entry” because the supply of alternatives is smaller.

Famous example in the other direction: libvorbis switched from the LGPL to a BSD-style licence with RMS’ approval, because the space of sound libraries was already very crowded. Having libvorbis under LGPL hurt the main goal — adoption of a non-patent-encumbered audio codec — more than licensing via LGPL helped normalise copyleft.

Three: Develop for Emerging Languages

A more extreme version of point two: because there are relatively few copyleft developers compared to BSD/MIT/X11-licence FOSS developers, copyleft developers must be proportionally more powerful in order to stay competitive. Writing everything in C is no longer going to cut it; copyleft authors should be using the most powerful tools possible.

I think that if copyleft software wants to carve a niche for itself in 2021, emerging language ecosystems might be a good place to consider:

It could be interesting to see what happens to an emerging language with a high-quality copyleft-by-default ecosystem instead of a BSD/MIT/X11-licence-by-default ecosystem. Perhaps such an ecosystem could make copyleft developers more productive than non-copyleft open source developers, which could then make writing copyleft software more attractive.

Four: Build Ecosystems

Generalising point three: a single copyleft library is easily worked around. An ecosystem of copyleft libraries, all depending on each other? It becomes easier to copyleft than to reinvent the wheel and the axle and the transmission and the chassis…

Five: Use Stronger Licenses when Strategically Possible

Especially on unique software (point two), use licenses that provide stronger protections for users and developers. The AGPL is a start, but a critical mass of novel “or any later version” copyleft software could be used to enforce protections relating to machine learning, ensuring interoperability, or ensuring installability. The licences also need to evolve to defend against new attacks (such as locked bootloaders), but can only do so if there’s enough projects supporting those transitions.

Conclusion

I think that free software is vitally important to public society, and that copyleft software is still a useful way to ensure its continued existence. But that software needs to be more powerful for users and more attractive for developers, otherwise it will never reach critical mass. Instead, it will be routed around.

Previous Post
All Posts | RSS | Atom
Copyright © 2021 Jack Kelly
Site generated by Hakyll (source)