Matthew Garrett ([personal profile] mjg59) wrote2019-09-26 02:24 pm
Entry tags:

Do we need to rethink what free software is?

Licensing has always been a fundamental tool in achieving free software's goals, with copyleft licenses deliberately taking advantage of copyright to ensure that all further recipients of software are in a position to exercise free software's four essential freedoms. Recently we've seen people raising two very different concerns around existing licenses and proposing new types of license as remedies, and while both are (at present) incompatible with our existing concepts of what free software is, they both raise genuine issues that the community should seriously consider.

The first is the rise in licenses that attempt to restrict business models based around providing software as a service. If users can pay Amazon to provide a hosted version of a piece of software, there's little incentive for them to pay the authors of that software. This has led to various projects adopting license terms such as the Commons Clause that effectively make it nonviable to provide such a service, forcing providers to pay for a commercial use license instead.

In general the entities pushing for these licenses are VC backed companies[1] who are themselves benefiting from free software written by volunteers that they give nothing back to, so I have very little sympathy. But it does raise a larger issue - how do we ensure that production of free software isn't just a mechanism for the transformation of unpaid labour into corporate profit? I'm fortunate enough to be paid to write free software, but many projects of immense infrastructural importance are simultaneously fundamental to multiple business models and also chronically underfunded. In an era where people are becoming increasingly vocal about wealth and power disparity, this obvious unfairness will result in people attempting to find mechanisms to impose some degree of balance - and given the degree to which copyleft licenses prevented certain abuses of the commons, it's likely that people will attempt to do so using licenses.

At the same time, people are spending more time considering some of the other ethical outcomes of free software. Copyleft ensures that you can share your code with your neighbour without your neighbour being able to deny the same freedom to others, but it does nothing to prevent your neighbour using your code to deny other fundamental, non-software, freedoms. As governments make more and more use of technology to perform acts of mass surveillance, detention, and even genocide, software authors may feel legitimately appalled at the idea that they are helping enable this by allowing their software to be used for any purpose. The JSON license includes a requirement that "The Software shall be used for Good, not Evil", but the lack of any meaningful clarity around what "Good" and "Evil" actually mean makes it hard to determine whether it achieved its aims.

The definition of free software includes the assertion that it must be possible to use the software for any purpose. But if it is possible to use software in such a way that others lose their freedom to exercise those rights, is this really the standard we should be holding? Again, it's unsurprising that people will attempt to solve this problem through licensing, even if in doing so they no longer meet the current definition of free software.

I don't have solutions for these problems, and I don't know for sure that it's possible to solve them without causing more harm than good in the process. But in the absence of these issues being discussed within the free software community, we risk free software being splintered - on one side, with companies imposing increasingly draconian licensing terms in an attempt to prop up their business models, and on the other side, with people deciding that protecting people's freedom to life, liberty and the pursuit of happiness is more important than protecting their freedom to use software to deny those freedoms to others.

As stewards of the free software definition, the Free Software Foundation should be taking the lead in ensuring that these issues are discussed. The priority of the board right now should be to restructure itself to ensure that it can legitimately claim to represent the community and play the leadership role it's been failing to in recent years, otherwise the opportunity will be lost and much of the activist energy that underpins free software will be spent elsewhere.

If free software is going to maintain relevance, it needs to continue to explain how it interacts with contemporary social issues. If any organisation is going to claim to lead the community, it needs to be doing that.

[1] Plus one VC firm itself - Bain Capital, an investment firm notorious for investing in companies, extracting as much value as possible and then allowing the companies to go bankrupt
brooksmoses: (Default)

[personal profile] brooksmoses 2019-09-27 09:14 pm (UTC)(link)
I think there's also an interesting contrast between some of these things and one of the big drivers behind "open source" software (i.e., non-copyleft, BSD-ish rather than GPL-ish) is corporations finding it an effective way to collaborate on large infrastructure projects without needing all the red tape and complexity of cooperation contracts.

That seems to be one of the large drivers behind things like LLVM, where much of the contribution is coming from a handful of corporations, and the drivers are basically, "Having a good one of these is important to our business, but having a better one than everyone else is not important to the business." Or, in some cases with things like Kubernetes, it's also "Having what we use be both good and the accepted standard is important to our business."

The question arises as to why these projects have plenty of funding and contributions, whereas some others of "immense infrastructural importance" are "chronically underfunded" (as you mention). From my perspective of working inside a large company that does a lot of FLOSS work and also has a lot of internal-only infrastructure code, I don't see a lot of difference between this and some of the internal things we have -- the issue seems to be one of lifecycles. Mature software like OpenSSL that has become solid enough to be a fundamental underpinning, and which is deep enough in the stack not to want new features, stops being something that shows up on anyone's planning radar. All the rest of the problems flow from that root, and that's a challenging one to solve.

(Anonymous) 2019-09-28 03:19 pm (UTC)(link)
Many of those open source projects, LLVM being a prime example, got significant funding (notably from Apple in the case of LLVM) precisely because the goal was to replace a dependency on a GPL component after the GPLv3 came along.

It wasn't such a nice "let's be friendly businesses and cooperate rather than compete" but more like "let's join forces to compete against copyleft software".
brooksmoses: (Default)

[personal profile] brooksmoses 2019-09-30 05:08 am (UTC)(link)
Oh, I definitely would agree that applying motivations like "let's be friendly" to large corporations is never likely to be a useful model. Public corporations are inherently selfish entities, and the dynamic that I find particularly interesting here is not so much that their self-interest leads to cooperation on building things outside their core business, but that an open-source project is an effective vehicle for the cooperation.

Similarly, I think characterizing Apple's goals as "compete against copyleft software" is not the most useful model. Apple's goal was to have a compiler for OS/X and iOS they could distribute with a licensing model they liked, as cheaply as possible. Trunk GCC was basically irrelevant to that goal; there's no primary value to Apple in competing against it, any more than there is for Microsoft in competing against it with Visual Studio. So I think a better statement of it would be, "Let's join forces to build a software tool that's licensed in a way we like."

Obviously their choice of how to achieve that goal does have secondary effects of competing against GCC (and this has had both detrimental and beneficial effects on GCC), but I think we shouldn't confuse that with their primary goal. Many companies participate in these sorts of projects without having that as a goal, though the effects on copyleft software are similar.

Anyway, I think this is relevant to the conversation for two reasons. First, it's obviously a dynamic that's happening in the broader software space that affects contributions to copyleft software -- and even if it's all "competition", it is a major reshaping of the competitive landscape. Second, I think it is worth considering whether there are ways to adjust copyleft licenses to make them more attractive for this sort of project, and whether the resulting compromises would be acceptable or not.