< Index

My collected thoughts on libre software

I AM NOT A LAWYER AND THIS IS NOT LEGAL ADVICE. These are just my (poorly informed) opinions as a layman.

Because my opinion on things tends to change with time, the contents of this page (like any page on my site) may be drastically different as time passes. This page should always be relatively up to date with how I feel. As always, feel free to ask questions or state your objections to my email, xerxes@persrex.xyz.

This page will be a collection of my thoughts on various topics/groups within the world of libre software (otherwise known as "free software" or "free and open source software" or "FOSS"). If you just want a brief overview of how I feel, I believe that libre software is one of the greatest inventions in the history of computing, and its continued perpetuation and eventual replacement of the prioprietary business model has large, sweeping ramifications for everyone in every field or position, from governments down to individuals.

The licenses

Libre software wouldn't exist without the licenses which make it possible. The idea of libre software licenses is to take copyright law and either give up your rights to a piece of software (as is done with permissive licenses) or use your rights to make sure that nobody else can ever restrict anyone else's rights to use the software (copyleft). Ultimately, to be a libre license, the generally agreed upon definition is the simple one given by the Free Software Foundation (more details about the FSF come later), which defines libre software as software which allows you to use it, modify it, share it, and share modified versions of it (and, in order to be modifiable, must have source code available as a requirement). There is also the Open Source Initiative which has its own definition which has ten requirements instead of the four of the FSF definition; in practice, the licenses approved by both are almost exactly the same, though the philosophy of the two is different. OSI is more about the benefits of open source software for business, while the FSF is aimed towards creating a larger community of software developers who build upon each other's work and share it. "Open source" software refers to the OSI philosophy, while "free software" refers to the FSF philosophy. I don't prefer the term "free software" though, the term chosen by the Free Software Foundation, because it's vague (it means free as in freedom, not price), so I'll try and mostly use the term "libre software" which means the same thing.

Permissive licenses

Permissive licenses are licenses in which the recipient of the software can do anything they wish with it, up to and including making the software proprietary (that is, distributing it as a binary without source code). As a developer for a permissively licensed piece of software, you could, for example, develop an entire operating system, and Microsoft could take the source code and call it "Windows 69" and continue development of it and release it as proprietary software for money at your expense. This does indeed happen; I believe the Playstation 4's operating system was based off of FreeBSD, and the much-maligned Intel Management Engine in every single Intel CPU for the past 10+ years was based off of MINIX.

Some people are okay with this right, and I used to be one of them. I've never written anything actually substantial as software (I've never taken beyond an introductory computer science class in my life), but early software that I have on my GitHub was released under the Creative Commons 0 (CC0) license, which is an extremely permissive license. Basically, my viewpoint on permissive software is, if you're going to release something permissively, you may as well release it into the public domain; this gives users of your software the absolute maximum amount of freedom over what they do with the software, even harmful freedoms such as making it proprietary. Because the whole world does not view or recognize the concept of "public domain", the CC0 license acts as a dedication to the public domain with a fallback to the most permissive license possible, which for all intents and purposes is the same as the public domain. The only weakness of the CC0 license is that it still allows you as the software creator to hold patents for the ideas in the software and sue people for it as a trap, but as far as I know this applies to most other permissive licenses anyways.

For a little more about why I like(d) the CC0 license, and permissive software in general, I particularly liked that it's the most resilient license in terms of disaster scenarios with copyright law. CC0 is necessarily compatible with any other license and allows any use in the future; the same cannot be said about copyleft licenses, which are often incompatible with each other and impose restrictions which may make use of the software illegal in unforeseen situations in the future. To sum up: there are imaginable futures where our GPLv2 software from today will not be legally usable anymore, but there are no imaginable futures where CC0 or public domain software will not be usable by the general public. CC0 code can always be licensed to something else later on, such as the GPLv2, by anyone who wants to, whereas GPL code will stay GPL code unless the copyright owner(s), which could be one person/organization or thousands of individuals, choose to change the license to something else. (And even then, I don't think this process is very well-understood in terms of its legal ramifications and the proper process to do so.)

Ultimately though, I think that copyleft is the better direction to go because corporations have proven time and time again that they cannot be trusted. It's better to make software "free, or else!" rather than make it free to the extent of letting Microsoft take your code and bury it somewhere in the awful Windows operating system to never contribute back to you, or society, again.

Copyleft licenses

Copyleft is like a permissive license in most ways (freely distributable, changeable, and even sellable), except there's a crucial difference: software that is copyleft, unless it is dual licensed or has some other license shenanigans, can never be made proprietary by a third party. In fact, in most cases, derivative works have to be licensed under the same license that the original software had. The GNU GPL "+" licenses are an exception in that they allow you to license under later versions of the GPL, but you still aren't allowed to relicense the software under an earlier version, or any other license you choose.

The oldest (and debatably best) example of a copyleft license is the GNU GPL, currently on version 3 since 2007. The GNU GPL is the favored license of the Free Software Foundation and the GNU project. The GPL is used on many extremely popular pieces of libre software, such as GCC, Blender, and the Linux kernel (minus the firmware, which is mostly separated nowadays from the kernel itself besides a few stragglers in the mainline kernel sources). The GPL is a powerful and effective license which has been held up time and time again in court, which lends credibility to its continued use for libre software developers versus most other licenses which have never been challenged in court.

I don't have anything particularly against the GPL - but by its very nature of being copyleft it's kind of written itself into a corner.

The GPL hinges very strongly on the copyright holder licensing the software as what's called "GPLv2+" or "GPLv3+", where the software is licensed under, in for example the first case, GPLv2, but there's a note added to the license statement saying the code can also be relicensed under "any later version" of the GPL. This allows the FSF the freedom to make new versions of the license to respond to changes in the computing landscape which would uncover loopholes in the license. For example, when the GPL was moved from v2 to v3, extra statements were added to restrict modern threats to the continued freedom of the software, such as software patents. There was also a change to stop hardware vendors from distributing GPL software on hardware which would not allow any version of the software besides a version with a specific signature from being run, which is called "tivoization" by the FSF because of the use of this method of restriction by TiVo. Some people, such as Linus Torvalds, think that this latter restriction is overstepping the bounds of what the GPL should cover into the hardware people develop around the GPL software, and chose to keep their software as GPLv2 without the + option. While ironically one of the benefits of version 3 of the GPL was extended license compatibility with other libre software licenses, the problem is that the GPLv3 is actually incompatible with the GPLv2 without the + option. So, people who chose not to update their license or did not leave the option to update in their license statement are now incompatible for linking with GPLv3 code.

The thing is that all of the restrictions that are in the GPL are (as far as anyone knows) necessary for it to accomplish its goal. It's by design meant to not be compatible except with software which is specifically compatible with its goal, so that it cannot sneakily be built into proprietary software at any point. And if the license is going to continue being relevant, it's understandable that it will have to be changed as time goes on. These two ideas are inherently contradictory to each other. And, while it may seem to be a good idea to add the + option to your license statement, on the other hand there's no telling what may happen to the FSF in the unforeseeable future. While highly unlikely, thirty years from now there could be a GPLv5 written by the FSF which then becomes a permissive license which would completely change the entire legality of the distribution of your software from when you wrote it. Only the FSF can create new GPL licenses due to their own copyright control over the license itself, but that doesn't mean that they will necessarily make the best choices. Ideally, the original author would be able to personally choose to update their license or not for each version of the GPL (or abandon the GPL entirely and relicense, if the need arises), but the problem is that people, unfortunately, die, and copyright is held for 70 years after death. It's also relevant that most libre projects are developed online in mediated channels which means that copyright holders who contributed to a libre project can easily drop off the grid and become uncontactable, leaving their contributions stuck on the current license. It's a bit of a catch 22; the only way that this situation could have been avoided was if there was one, perfect GPL written before the libre software movement even started, but this of course was not possible. Incremental improvements are required, and come with many challenges.

And to add a further layer of humor, I don't even particularly care for the regular GPL; I'm more of a fan of the AGPL, the GNU Affero General Public License. The AGPLv3 is basically the exact same as the GPLv3, and they are both specially compatible with each other, except that the AGPLv3 adds an extra note saying that if a modified version of the software is made available over a network, the source code must also be made available. I think this patches a much bigger hole in GPL software than the tivoization clause in the GPLv3 does, considering that computing is becoming more and more centralized on the internet on distant servers, accessed through a browser. Software that is made available in such a manner could be GPL or it could be proprietary, and to the end user the result would be the exact same - they would not be able to audit the code or benefit from changes made by the server owner to the code, going against the spirit of what the GPL is trying to accomplish. The only negative that could arise from the AGPLv3 is a situation where the modified code becomes more popular than the actual use of the code on the server, using substantial bandwidth or system resources for many people downloading the software. This can be mitigated though by urging users to download the modified source from a third party host like GitLab or the like, or even by instituting a paywall to use the software on the network and download the software. An interesting quirk of libre software as defined by the FSF is that there's no prohibition on copies being sold for profit, as long as any distribution of the software in binary form also contain the source code, or has source code easily accessible through some other means for a reasonable additional cost. So, the person running the network in our example could charge $1 for each person to gain access to the network and therefore the ability to download the source code, and that would not be considered a violation of either the philosophy or the license.

Overall, the GPL in all its incarnations has always tried to do more than give people freedom with the software - it gives people freedom, without allowing them to restrict the freedom of the people that they then distribute the software to themselves. It's one of the great hacks of the copyright system and a giant middle finger to the common modern philosophy of software copying being "piracy" and the only profitable way of making software being hiding how it works from its users. If every piece of software ever written was released under the AGPL or even the GPL, we'd be living in a much better world than the one we live in today, where the way that the software on 99% of computers (i.e. macOS and Windows) works is only known to 0.01% of the population that works at the specific corporations writing it.

The Free Software Foundation/GNU

People usually have extreme reactions to the FSF, and by extension the GNU project (they're basically the same organization and have a ton of overlap). Both were created by Richard Stallman, and the goals of both are to create the licenses (FSF) and software (GNU) as well as marketing, outreach, and philosophy to support the furthering of libre software and other closely related topics topics in software and computing, such as fighting DRM and supporting user security and privacy. Together, the two organizations developed (directly or indirectly) many of the fundamental pieces of software for the libre software movement and the Linux operating system, such as bash, GCC, the GNOME desktop environment, the GNU coreutils, and so on. That's not to say that they developed all of the Linux operating system besides the kernel as the FSF commonly likes to argue, but they do have a major chunk of it. This will be covered in more detail in the "GNU/Linux" section.

Many people like to call the FSF a cult. I don't think I would necessarily go that far because most of the time their philosophy and their statements about the future of software have been widely positively influential, and are usually accurate and ahead of their time. Of all of the libre software projects that you could donate to, I think, unless you are really a fan of a specific piece of libre software or a specific Linux (or Linux-libre) distribution, the FSF probably makes the largest and most widespread impact with it funding GNU as well as the legal efforts to create new libre software licenses and painstakingly verify many of the ones out in the wild for how well they preserve your freedom. I personally have made a donation of $60 recently to become a student associate member for a year, and I think that that's a fair amount to give for all of the time I've spent using GNU software and GNU licensed software. (You also get a cool membership card that doubles as a thumb drive with Trisquel on it, which was a large part of my motivation.)

The FSF doesn't always hit the mark, but like any human endeavor, it's unrealistic to expect them to. For example, on the GNU website (where most of the philosophical statements are actually hosted) is a list of "words to avoid". Most of these I actually agree are making good points, but some of them are questionable, such as the insistence that using the term "creator" to refer to a programmer elevates them to the status of a diety in your mind. If it wasn't for little things like this every once in awhile, they would come off a lot less cult-y to most people.

FSF approved Linux distributions

The FSF also takes a very extreme (but, in my opinion, completely understandable) viewpoint that, in order for libre software to become the norm, people need to refuse to use proprietary software in any way, shape, or form - from device firmware and BIOS up. For an operating system distribution to be approved by the FSF, it has to pass the Free System Distribution Guidelines which has only been done to the FSF's satisfaction by a select few Linux-based distributions. Almost all notable Linux distributions, even those with strict libre software requirements or separations such as Debian, Gentoo, and Fedora, do not pass their requirements. Taking a deeper dive with Debian, even though the stock Debian system does not install any proprietary software, strips blobs from the kernel, and requires proprietary software to be specifically enabled by the user, because proprietary software is available as an option at all or is referenced as available at any point, the distribution cannot be approved by the FSF. In my opinion, this is less about enforcing a worldview where proprietary software is evil (though the FSF does believe this), and more about promoting a world where libre software is available for everyday use and marketable. The common opinion in software is that libre software cannot (easily) generate a profit and therefore all of the billions of dollars that go into software and hardware development goes into making it as proprietary and locked down as possible. If people refused to use proprietary software, then the profits from this market would be hurt, and corporations would be more encouraged to develop open alternatives, leading to a snowball effect. Using a completely libre distribution also makes glaringly obvious the software that's missing and unavailable that needs to be worked on, such as firmware, by showing what it's like to not have any proprietary alternatives available. In this way, it's both a "speak with your wallet" kind of move, and also a motivating factor to fix what isn't libre yet. As a bonus, it's also a nice trophy that you can enjoy of the libre software movement, having a completely libre system.

Personally, as someone who tries to use as little proprietary software as possible (with exceptions made for wireless firmware, bios, and microcode), I can definitely see the benefit of having a distribution that puts libre software first and makes it difficult to install any nonfree software. Using Gentoo, I recently ran into a situation where I had texlive installed and changed my accepted license to disallow software licensed under the original Artistic License and some other licenses like the NASA license, because they are not approved by the FSF's definition which I find the best (though the former does have approval from OSI and Debian's free software guidelines). Texlive, unfortunately, has a million different packages that make it up, and even each "package" contains within itself a massive amount of different tarballs that are each compiled and installed during the installation process. I wanted to verify personally what parts of texlive used the Artistic license and what version of the license was used, and if it was dual licensed (not entirely trusting the package manager), but it was exceedingly difficult to do so and I eventually gave up. It doesn't even seem possible to browse the source of the packages (the actual package, not the ebuild) in some Git hosting site, so I had no way to look at the licensing of the software. At least if I was using a distribution that has a strict definition of libre software that it adheres to for all packages, I would not have to check these things on my own, and would just have to verify that I agree with the definition given by the distribution. If a package slips through that doesn't meet their guidelines, it'll either be removed or replaced without having to worry about it as an end user and basically do the job of a package maintainer to see the license of my software.

Richard Stallman (RMS)

Many people would say that the FSF's adoration of Richard Stallman is perhaps cult-like; in fact, he plays to this himself with his jokes about the Church of Emacs and Saint iGNUcius. I've considered for a long time my opinions of Stallman and they change around a lot. Right now, after evaluating his opinions as expressed on his website for myself and doing a reappraisal of him, I think he's a pretty good person who makes mistakes like anyone, and he shouldn't be judged too extremely harshly for those mistakes. I think that at the heart of the matter, if the man is to be judged as a philosopher - as creator of the libre software movement - he's clearly a person worthy of praise. I don't think anybody is really denying this, except perhaps people who very strongly prefer permissive licenses to copyleft licenses (though, they have to give credit to Stallman for popularizing even permissively licenses software).

The problem more comes from his personal views on multiple topics. Stallman has stated opinions in the past such as that sex with minors does not inherently cause harm, or that children with Downs Syndrome should be aborted before birth. Most recently, during the media frenzy about Epstein, it was revealed that MIT and Minsky had a connection to dark money and parties from Epstein (I don't know a whole lot of specifics), leading to an internal email chain. Stallman entered this emailed chain after getting caught up on the terminology being used (specifically, that "statutory rape" is an inappropriate use of the term "rape") and said some off color remarks - in regards to a potential sexual encounter of Minsky with a minor, he said the strange phrase "we can imagine various scenarios" twice alongside other statements that could be, perhaps falsely, construed as defense of Epstein. The latter messages about Epstein were, again, in an official MIT mailing list, which is definitely not the right place to be debating the definition of rape in the middle of a scandal. I'm not necessarily going to take up the mantle here of defending Stallman from all of these situations, though I will say that the first statement about sex with minors was made a long time ago and he has since redacted the opinion, and, when it comes to the email chain about Minsky, I think that, if you really very carefully read what he's saying, he says some pretty offensive (and offensively blunt) stuff during a sensitive conversation but nothing that was necessarily factually wrong: just very, very easy to misconstrue as meaning something different. This email chain was what eventually led to Stallman being ousted as the president of the FSF, though he has recently been reinstated as a board member again (much to the chagrin of a lot of people who find him intolerable).

I think that if I were to just judge him off of these situations, I probably wouldn't have liked him either. But after taking the time to read the things he writes on his website, he is almost always a very inclusive and open person who just occasionally has a misstep in my opinion which gets blown up because of how public, outspoken, and blunt of a figure he is. It's one of those things where Stallman doesn't really censor himself and makes vocal what he believes in, even if society at large would find it insensitive or even evil by our current standards. And, he's shown over time his willingness to change and reevaluate himself. I also think that most people who respond negatively about him, such as past me, are perhaps a little too reactionary and not getting a full picture; I don't know if most people who think he's a sexist or a stereotypical bigoted white person would still carry that opinion after seeing how he carefully uses gender neutral pronouns in his writing and often has very liberal and inclusive responses to modern political news and movements.

work in progress

June 5, 2022