Redis is no longer OSS

mesamune@lemmy.world to Programming@programming.dev – 304 points –
Kyle Davis (@linux_mclinuxface@fosstodon.org)
fosstodon.org
108

Didn't they switch to a license with stronger mechanisms to keep the source available? SSPL, is basically AGPL but have even stronger protection from large corperations to use the code in their data centers without contributing the changes back. This is basically a move to prevent AWS/Google/Microsoft/et al, from leaching on the contributors work without giving anything back.

Or am I reading this wrong?

EDIT: Note, that the Mastodon account is to an AWS employee.... so for him, this might be bad, since it no longer allows them to have their own internal fork without contributing back. Now, they will need to use a real for and maintain that them selves without leaching on the redis contributors.

I suggest an alternative title to this post: AWS employee is mad since Redis change license to prevent them from leaching

The restriction doesn't only apply to large corporations, it applies to everybody. It restricts what you can do with it so it breaks the fundamental freedoms that make up "FOSS". As an immediate result it will be removed from Fedora and Debian because they don't consider SSPL/RSAL to be FOSS:

https://gitlab.com/fedora/legal/fedora-license-data/-/issues/497

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915537#15

it breaks the fundamental freedoms that make up "FOSS"

Why? All the license says is that if you provide it as a service you must release the source code.

It says that you must release all your source code, even the stuff that isn't covered by the license. From Wikipedia:

anyone who offers the functionality of SSPL-licensed software to third-parties as a service must release the entirety of their source code, including all software, APIs, and other software that would be required for a user to run an instance of the service themselves,

Fedora and debian support the corporate definitions of FOSS, so their opinions do not matter here.

it applies to everybody

I don't think most of us want to offer services by hosting a service without contributing back the code. If they do, I am happy that it is a requirement that they give back. Only for-profit companies will have an issue with this.

Weirdly OSI doesn't classify the SSPL as an open-source license because it doesn't guarantee "the right to make use of the program for any field of endeavor", calling it a fauxpen license. I don't think the FSF has commented on the license, though I would be curious what they say about it.

I imagine they consider it to not give the right to make use of the program for any field of endeavor, because providing the source of the entire stack needed to run the service you provide makes it impossible for users to host their service on stuff like AWS, since it is proprietary.

I think checking the sponsors page for OSI will be informative.

7 more...

For the record. The SSPL that Redis switched to while technically not recognized by the OSI really isn’t bad at all.

It’s exactly like the AGPL except even more “powerful”. Under the SSPL if you host redis as a paid service you would have to open source the tooling you use to manage those hosted instances of redis.

I don’t see why anyone but hyper scalers would object. It’s a shame that the OSI didn’t adopt it.

From what I've understood SSPL is a ridiculously ambiguous license, it's extreme copyleft. It's not just "open source the tooling you use to host the software", it can also be interpreted to mean "open source all the hardware and firmware you use to host the software". No one wants to risk going to court for that so corporate wants to use SSPL licensed software.

AGPL is the best license you can go for IMO.

The ambiguity is a valid concern. Hopefully the next version addresses this a bit better. This being said mega corps will call anything they can’t abuse for profit “extreme”. So if they think it’s extreme that just means we are on the right track.

lmao imagine allowing to run your software only on RISC-V boxes basically, pretty based but also a shoot in the foot in terms of acquiring any major funding

To be fair the license is not meant to cause this and has never been enforced like this. The license was written for software tooling.

Huh I interpreted it as "everything involved with deployment" so connecting services, scripts, parts the OS that touch it, and an configurations.

I guess that is the ambiguity you mentioned

Regardless of whether it is too strong or too ambiguous, it is absolutely an open source license regardless of whether the OSI and/or FSF approve of it.

2 more...
2 more...

I wonder who all are sponsoring OSI for them to not recognize SSPL.

2 more...

https://redis.com/blog/redis-adopts-dual-source-available-licensing/

This is the announcement.

This is a disappointing outcome but one that I think has been coming for a while. Amazon has profited off of Redis without giving much back for quite a while (at least I recall this being a complaint of the Redis folks, perhaps others have evidence to the contrary).

This is pretty clearly an effort to bring AWS to the table for negotiations.

${CORPORATION} has profited off of Redis without giving much back (...)

I don't understand this blend of comment.

If you purposely release your work as something anyone in the world is free to use and change to adapt to their own personal needs without any expectation of retribution or compensation, why are you complaining that people are using your work without any retribution or compensation?

More to the point, why are you singling out specific adopters while leaving out the bulk of your community?

It makes absolutely no sense at all.

There's generally an understanding (the GPL folks think it's naive -- and this makes their case) that if you use open source software you should give back to it.

And yet fuck all people do. Ever.

If you're random Joe Schmoe who happens to need a database, I don't expect you to contribute. But when you're of the largest tech firms in the world...

Absolutely not true. I know this is just my experience, but I've worked with plenty of devs who've contributed prs and/or donations back to OSS projects in the past, and all my former employers have opensourced at least some of their software

The GPL people are naive too because GPL doesn't always prevent it either.

It does, AGPL for servers, GPL for applications... If you make changes they have to be made available or you're breaking the law.

You only have to give back if yours literally redistributing a modified version of the thing.

If you use the software without modifying it directly (such as building on top of it, or building something that uses it), then that's allowed.

Also if you make use of the software commercially, without necessarily distributing it, then that's also allowed. For example, Google could (I think they actually already do) modify the Linux kernel, and use it all across their company internally. They don't have to give back, since they don't distribute it.

And last, if you don't modify the software but charge people using it, that's completely allowed.

If you use the software without modifying it directly (such as building on top of it, or building something that uses it), then that's allowed.

(IANAL)

Not in the case of AGPL (use over the network and IPC counts as distribution -- presumably proxying the request is insufficient to disable this clause) and even in the case of GPL that's a very problematic position to put yourself on. You're basically talking about invoking a foreign process from your primary process to avoid licensing constraints and that comes with a lot of limitations as to what you can do.

You can modify the GPL program to support more things via IPC but then if that program needs to touch a customer's computer, you have to contribute at the very least those notifications and any related improvements you made to make that possible or any new feature which makes more sense to be in the tool you're calling than your tool building on top.

And last, if you don't modify the software but charge people using it, that's completely allowed.

Yes, but who's paying for that? If it's a server hosting company, they'll pay the hardware rental fee, fair enough. However, you can't reasonably sell that software itself, people will just build it themselves.

They shouldve releases redis under agplv3 if they really want those corpo to give back to community.

without any expectation requirement of retribution or compensation

I won’t require you to upvote my excellent comment, but I sure expect it!

Paragraph three is solid on Wiki: reciprocity - we needs it!

can guarantee that if redis was closed source from the beginning, Amazon would've just made their own clone internally just to avoid paying someone else.

ElasticSearch tried this and lost hard already. OpenSearch has already out paced it in features and performance and ES is effectively dead. Such a braindead exercise to see Redis follow suit

Opensearch outpaced elasticsearch? This article from April 2023 states otherwise

OpenSearch saw over 3 times less code commits on core, and 14 times less work on important modules

I wouldn't touch ES with a barge pole. They wrote their own gravestone imo. Check out the quality of the docs today between the two, and the SQL support. commits != quality or features

Generally appropriate response to this sort of thing. Best of luck, consider bringing a boatload of goodwill to the table. I doubt I'm alone...

Such a braindead exercise to see Redis follow suit

I agree, this sounds like a desperate cash grab.

I mean, cloud providers who are already using Redis will continue to do so without paying anything at all, as they're using stable versions of a software project already released under a permissive license. That ship has sailed.

Major cloud providers can certainly afford developing their own services. If Amazon can afford S3 and DynamoDB, they can certainly develop from the ground up their own Redis-like memory cache. In fact, Microsoft already announced Garnet, which apparently outperforms Redis in no small way.

So who exactly is expected to pay for this?

Can someone explain the benefit of letting AWS use your product, then throw resources at it to improve it to get and advantage over your product, basically providing a much better product to their users than you would be able to. But they do it without any need to contribute back. I don't see the benefit of this to the opensource community at all, but people here seems to be quite passionate about it so you must see this differently than I do. So, please explain your view on how such a situation is beneficial to the OpenSource community.

FOSS has spent the last few decades operating under the assumption that companies would give back for the greater good if they found value and grew dependent on a project. What they didn't understand is that corporations are parasites who only care about immediate profits, and are more than happy to abuse the honor system indefinitely. There isn't any benefit to FOSS to continue operating under this model, which is why FOSS is shifting away from licenses that permit leeching for profit.

It's no different to how corporations have worked to destroy the social contract, and do everything imaginable to evade taxes, offshore labor, corrupt our political systems, and not give back to the economies that incubated them and enabled their success — at some point you have to tell them to get fucked, stop being a fucking parasite, and pay their fair share... If they don't give back and improve things for the majority, they don't deserve to profit from it.

The idea behind making your software fully open source is that you don't care either way. And everyone is free to do as they please.

No, that is not all the idea. You might have that idea, but it is not a basic idea at all. To keep something open (as in open source), you must put restrictions that prevents it from closing.

A government is not more free just because it lacks any restrictions, about becoming a dictatorship. It is just less restricted at this point in time. To ensure a free society, there needs to be restrictions in place that ensures it stays free. The same applies to software.

Many seems to believe that less restrictions means more free or open, that is not true. It is just less restricted.

Oh no,sorry,that's sorry of what I meant: if you desire additional restrictions you'll need a license for that - as the redis devs are doing now, in fact.

Which is fair. Quite fair. But if you do something less restrictive, you quite intentionally go the "dont care" route.

If you think this is bad, then you should make sure to use copyleft licenses.

EDIT: Just read the details, and it seems that this is just what they did. SSPL is like AGPL with a stronger SAAS is distribution claus. That might not be valid, according to the OpenSource definition, but unless you are planning to modify the code and provide it as SAAS I think this is no a problem.

4 more...

all is fine, gentlemen - it has been forked

phew

The old code isn't going anywhere, there are already countless backups and clones. For a fork to actually be meaningful it needs community support and maintainers otherwise it's basically just a clone.

Been using the KeyDB fork for ages anyway, mainly because it supports running in a multi-master / active-active setup, so it scales and clusters without the ridiculousness that is HA Redis.

RSAL seems weird and I need to research it more. But I don't mind SSPL at all. It only hurts companies who hope to use open source without wanting to give back. From my perspective that's good.

Well interpretability of a non standard license is problematic, but that's true for any kind of new license. By that argument we should oppose any kind of change, positive or not.

Imo this change is positive. We should actively be against corporate leeching.

It's been 5 years. I don't think they're going to change the license to allow distributions to distribute MongoDB more easily.

We should actively be against corporate leeching.

In a world without free software, Amazon will build their own proprietary software for servers that is better than everyone else's, and will be in the same position. At least with Redis, multiple employees of AWS were core maintainers for Redis. It isn't like Amazon didn't contribute anything back. Now that it's non-free, they'll just fork it. Again.

All this really accomplishes is making licensing a headache for everybody, which is the main reason people and organizations use free software.

I think free software developers should be able to make money from their software, and money from working on their software. I also think everyone else should be able to, too.

To put it another way, open source means surrendering your monopoly over commercial exploitation.

Additionally, Elasticsearch does not belong to Elastic. Redis doesn't belong to Redis, either.

I do not understand why would a developer (or development team) change the licensing terms of their software for something stricter, like Redis did. Could someone tell me what the factors are?

I guess it's things like AWS Elasticahe that made them want to provide their own service without sharing the code with their soon to be competitors.

Great timing that Microsoft just released a drop-in replacement that's in order of magnitude faster: https://github.com/microsoft/garnet

Written in C# too, so it's incredibly easy to extend and write performant functions for.

It needs to be a bit more deployable though but they only just opened the repo, so I'll wait.

Can it do everything that redis can?

Not everything. There's a list of currently supported and unsupported apis on the docs. Streams aren't supported at all, for example.

The repo description says it works with existing Redis clients, so probably.

What a disingenuous take. Just because the OSI doesn't recognize the SSPL as open source doesn't mean it's not open source.

Edit: Everyone seems to believe I'm saying that because the source is available it should be open source. That's not what I'm saying at all.

Source Available < Open Source < Free Software

These terms have specific definitions, where each greater term is more specific than the lesser*.

SSPL is in the "Source Available" tier.

The OSI defines the term "open source," and the FSF defines the term "free software." The number one term of open source, greater than the availability of the source code, is the freedom to redistribute.

https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses

* Free Software isn't exactly a subset of Open Source. There are a few licenses which are considered Free but not Open: the original BSD license, CC0, OpenSSL, WTFPL, XFree86 1.1, and Zope 1.0.

I don't believe we should let the OSI and FSF be the absolute final say in what people consider to be open source/free software.

The number one term of open source, greater than the availability of the source code, is the freedom to redistribute.

SSPL allows this.

Absolutely. The source of Windows is widely made available to innumerable third parties, yet I've never seen anyone claim that it's open source.

I didn't think the Windows source is widely available, only the compiled form.

.Net core is open source though.

A lot of large companies have access to the Windows source tree. It's quite common.

That's not "source available" because the software is not released through a source code distribution model.

Companies may have access in order to produce better drivers or handle security incidents, but those are back-room deals, not part of Windows' distribution model.

2 more...

Irrespective of debates on what the definition of "open source software is" or who gets to define it, it is very clear that the SSPL is not a FOSS -- free and open source license -- and that's a shame. Sure, open source still means we can look at the source code, but we do not have the full freedoms to use the code for any purpose. You might retort "but I'm not a aaS provider" so my rights aren't affected.

But that's the thing: the erosion of free software rights is never the end, but then beginning of the end. Much like free speech, such rights must be jealously guarded. Need I mention what happens when there's no one left to speak up?

That some users of Redis never contributed back to the project is beside the point: truly free software is free as in libre: if you want thanks for your work, release it as freemium or some other license. But a FOSS license like BSD-3 has always been thankless and the OSI is correct in calling out the SSPL for not meeting the OSI's Open Software Definition's anti-discrimination clause, nor the FSF's zeroth freedom, amongst four.

Free means free. AGPL is free. But SSPL carves out an exception, making it not free. No amount of sweet talking changes this reality.

SSPL doesn't carve out an exception, it just has clauses that are difficult for SaaS providers to meet.

By the same argument, wouldn't GPL and other copyleft licenses be considered non-free as well since you are not free to do whatever you want with the source? For example, incorporating it into a proprietary project, refusing to provide the source to users upon request, or not disclosing attribution, etc. The latter would even go against the terms of permissive licenses.

Clearly defining what free, and by extension FOSS, means is very relevant.

There are two concepts at play here: open-source and free software. An early example of open-source is AT&T Research UNIX, which was made source-available (for a few) to universities for research purposes, who could recompile the code and use the binaries for that purpose. Here, the use of the software is restricted by the license terms.

On the free software side, as a reimplementation if the Unix software utilities -- ie all the programs like tar, ps, sh -- GNU coreutils is GPL licensed, meaning any use of the compiled binaries is allowed, but there are restrictions on the distribution, of both source and binaries. As it turns out, GPL is both free and open-source (FOSS); there are fewer major examples of free but non-open source, but WinRAR and nVidia drivers on Linux would count.

Specifically, GPL and other copyleft licenses require that if you distribute the binary, you must make the source available under the same terms. If you've made no changes, then this is as simple as linking to the public source code repo. If you did add or remove code, you must release those alongside the binaries. If you simply use the binaries internally, you don't need to release anything at all, and can still use them for any internal purpose.

wouldn't GPL and other copyleft licenses be considered non-free as well since you are not free to do whatever you want with the source

From the background above, free software has always been understood to mean the freedom to use software, not necessarily distribute it. GPL complies with that definition for using the software, but also enforced a self-perpetuating distribution requirement. Unlike plain ol free software, under GPL, you must redistribute source if you distribute the software for use (aka binaries), and you must make that source also GPL.

Under this explanation, the AGPL wouldnt qualify as an open source license, since you must distribute the source if you provide a modified version as a network service.

I'm not quite sure I follow. The AGPL mirrors the GPL, with an extra proviso that accessing the software via the network constitutes "use" if the binary, not "distribution" of the binary. Under GPL, the mere use of a binary does not require the availability of source.

Example: a student uses a GNU/Linux computer at their university computer lab. She runs the unmodified "tar" command from GNU Coreutils, which is GPL licensed. She is not entitled to a copy of the source from the university, because execution is a "use" of the binary on an already-provisioned machine, not a "distribution" of the binary.

Example: a student is given a software assignment from her professor, along with a .7z file containing old versions of "tar" that contain bugs, all GPL licensed. This is a distribution -- as in, a copy -- of the binary, so she is entitled to a copy or link to the source from her professor.

The first example helps explain what the AGPL adds, in the context of network use. Consider what happens if the university actually modified the "tar" command installed on their machines. They still would not have to distribute the modified source to the students, because students only execute ("use") the binaries. But with AGPL, use of modified software obliges source distribution.

Phrased another way, AGPL has every guarantee that GPL does, but adds another obligation for modified use via a network. Unmodified use does not require source distribution, under both GPL and AGPL.

This is the most pretentious thing I have read in a long while. Imagine comparing the holocaust to a copy left software license that mega corps find less profitable.

That may be but it is the best course of action to have it free for people to use and if you get to a certain size you have to pay for that shit. That is just fair.

Like pirating music and games when you are poor and then buy those things at a later date when you got the means for it.

Giving a company like Amazon who forbids their employees to piss crucial infrastructure for free ist just a slap in the face of decency.

I think there has to be a change in philosophy. It is free as long as you can't afford it. But as soon as you can afford it you have to pay. And if your company uses it to operate and generate money then the project has a right to an percentage of that money.

Everything else is just not feasible in the long run. As we see time and time again.

One of the drawbacks of software licensing with community projects -- although there are some (controversial) ways to sidestep this -- is that the license needs to be selected at the onset of the project, and you'd have to have everyone agree to that license or change the license.

If all the initial parties agree to use a FOSS license, they and all subsequent contributors under that license cannot complain that someone is actually employing that software per the terms of the license. A project might choose FOSS because they want to make sure the codebase only dies when it disappears from the last developer's disk.

If instead, the initial parties decided on some sort of profit-sharing license -- I don't know one of the top of my head -- then they and future contributors cannot complain if no business wants to use the software, either because FOSS competitors exist or because they don't like the profit split ratio in the license. If that ratio is fixed in the license, the project could die from lack of interest, since changing the license terms means everyone who contributed has to agree, so a single hardliner will doom the already-written code to obscurity.

The sidestep method -- which is what appears to have been used by Redis to do this relicensing to the SSPL -- is that all contributors must sign a separate agreement giving Redis Inc a stake in your contribution's copyright. This contributor agreement means any change to the Redis codebase -- since its inception? Idk -- has been dual-licensed: AGPL to everyone, and a special grant to Redis Inc who can then relicense your work to everyone under a new license.

Does the latter mean Redis Inc could one day switch to a fully-closed source license? Absolutely! That's why this mechanism is controversial, since it gives the legal entity of the project all the copyright powers, to level-up to FOSS or level-down to proprietary. Sure, you can still use the old code under the old license, but that's cold comfort and is exactly why hard forks of Redis are becoming popular right now.

In short, software projects have to lay out their priorities at the onset. If they want enduring code, that's their choice. If they want people to pitch in a fair share, that's fine too. But that choice entails tradeoffs, which they should have known from the start. Some mechanisms allow the flexibility to change priorities in the future, but it's a centralized, double-edge sword.