Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider changing the project license to Polyform Shield #2400

Closed
jellysquid3 opened this issue Apr 4, 2024 · 76 comments
Closed

Consider changing the project license to Polyform Shield #2400

jellysquid3 opened this issue Apr 4, 2024 · 76 comments
Assignees
Labels
P-high Priority: High

Comments

@jellysquid3
Copy link
Member

The license text of Polyform Shield 1.0.0 can be found here.

Preface

Sodium currently accounts for nearly 41 million downloads across all platforms (CurseForge, Modrinth, GitHub, etc), and has become a significant part of the modding ecosystem. The majority of mod packs for Minecraft released in the past 2 years have included Sodium (or a derivative of it) to improve performance. Many mods which add resource pack functionality and enhanced visuals to the game only have compatibility with Sodium.

Since the initial release, we have provided free updates to Sodium under the GNU LGPL v3, which is a strong copyleft license that ensures when others modify or statically link to our code, they must also share their code alike. This has enabled the community to build software more easily on top of Sodium, which has contributed positively to the overall health of Minecraft modding. We are immensely thankful for this support and the continued investment the community has shown in our efforts.

Issues

Unfortunately, despite the immense value we have provided to the community, we have also endured a long history of abuse and significant difficulty with trying to monetize our project, which has made continuing development extremely difficult.

I don't really want to write long-form about this abuse, but the short version of it is that numerous individuals have constantly weaponized our project against us, by repeatedly threatening that we are easily replaceable, and that we can be cut out of the scene at any time should mod pack authors and alike decide they do not like us. We have always been at the mercy of more powerful individuals, since their response is more or less "we'll fork your software" when we do something they do not agree with.

Lately, this has culminated into larger scale efforts by certain groups, which have been trying to push a third-party fork of our software that more or less only repackages the code we have spent tens of thousands of hours working on, with unfair compensation for our time and effort. We've not been able to successfully push back against this effort, due to these same individuals having connections within larger community, which can drive decisions about mod pack author's selection of software, and the narrative about myself.

Furthermore, this continued campaign against us, which has the ultimate goal of cutting us out of our own project, has resulted in a lot of indirect harassment/defamation towards me specifically. When other projects advertise themselves as the "only version of Sodium which provides value to the community", it gives fuel to other people who already feel that we have personally slighted them by not managing perfect compatibility with all other software.

The truth is that we try very hard to ensure compatibility with the wider ecosystem, and that we are doing what's possible of our resources while still developing new features/optimizations for the people who need them. A significant portion of our time goes towards trying to discover ways to implement these things without disrupting the community. Sometimes we aren't perfect, but it does matter to us a lot.

This is why waking up every morning to see people perpetuating the same vitriol towards me is extremely discouraging and, frankly, upsetting. The fact that other people can use our software for free, cut us out of revenue and recognition for it, and then in the same breath spread the harm they do towards me is not fair in any reasonable world.

While revenue has never been much a prickly point for me (having a full-time job allows you to spend more time on hobbies), the reality is that I have not really been of the state of mind to hold a job for the past few months now, which none of this situation has been helping with. The revenue from projects like Sodium has allowed me to just barely cover rent each month... and that has been dwindling with third-party forks eating into our user base, mostly pushed by mod packs that falsely claim there is a technical advantage or a superior user experience to be had.

For the record: Third-party forks of Sodium currently account for more downloads than Sodium itself has ever received. That means, more often than not, players are using our code via a third-party distribution or fork rather than the official upstream version (which we receive a fraction of the revenue from, if any.) And many of these downloads then come from mod packs, which often purposefully disable or circumvent our prompts to ask the user for financial assistance (donations.)

I've tried to be reasonable with people, and unfortunately, without changing the terms of this agreement, there doesn't seem to be any outcome to this other than me being eventually removed from the project which has arguably helped to redefine much of Minecraft modding.

Solutions

Changing the software license of this project will not end the abuse overnight, but it will take away leverage other people hold over me, and ensure that other people cannot unfairly cut me out of revenue for my projects. The less that I have to think about how every small change we make will result in community outrage that ultimately seeks to rip me apart from my projects, the more time I can spend being productive on the things that players actually want.

The license which most strongly protects our interests seems to be the Polyform Shield license, which is written by an experienced group of lawyers who specialize in software.

For most intents and purposes, this license is significantly more free than the GNU LGPLv3, and can be considered similar to the permissiveness of something like the BSD 2-clause:

  • You can use portions of the source code in your own product without enacting the copyleft requirement, so long as you are not using it to push a product which competes with the original. This makes it easier for hobbyists to use the code in their projects without fear of GPL virality, which is a question we get asked a lot.
  • If the original maintainers disappear, there is a provided contingency (section "Discontinued Products") to ensure the software can still be modified and built upon.

But, it differs in a significant way, which makes it no longer a free and open source software license:

  • You cannot use any portion of the source code or binaries to "compete" with the provider of the software. This means that other people would no longer be permitted to fork the mod and distribute it as a substitute for the original.
  • It would no longer be possible for others to port our mod to alternative loaders/platforms. We will be providing an official version of Sodium for NeoForge in the near future to remove the need for these forks.

For all intents and purposes, this would mean the ability for other players to download, share, and distribute the mod as part of their pack, would be completely unchanged. The changes in licensing would only prevent third-party forks from continuing to cut us out of our own project, which includes ports to other mod loaders and replacements for the original on Fabric.

This issue does not put forth a plan to relicense as much as it proposes the idea with serious consideration. The process for re-licensing the project would be more complex, requiring the approval of a handful of contributors (<7 people) who have made non-trivial changes to the project. It would also not retroactively relicense the code, so older revisions of the source code can still be used under the terms of the GNU LGPLv3.

However, even without approval of the current maintainers, it is possible to include non-free software in the repository as optional modules which are compiled into the final binary which we distribute on our project pages. We would just need to provide a manner to configure the build script to produce a "free" version with these modules disabled at compile time.

Alternatives

There does not really seem to be a reasonable alternative here. The reality of the situation is that working on a mod like Sodium is simply too demanding of my time, while subjecting me to abuse that most people would not put up with. My time must be prioritized where it makes sense, and going back to full-time work (with no time left over for Sodium) is the only logical conclusion if we can't move the project into a better place.

Other comments

The point of this is to say that, more or less:

  • Abuse towards open source volunteers should not be the standard. Licenses do not protect authors, they protect users, and that is not creating a healthy relationship here. The Polyform Licenses change this equation.
  • Free and open source licenses exist to build better software. That goal can still be accomplished while ensuring that other people can not "compete" with upstream by repackaging our code.
  • We can't expect people to provide software, for free, to an extremely large community that practically relies on it as infrastructure.
@jellysquid3 jellysquid3 added the P-high Priority: High label Apr 4, 2024
@jellysquid3 jellysquid3 self-assigned this Apr 4, 2024
@machiecodes
Copy link

machiecodes commented Apr 4, 2024

Slay 💅

@jellysquid3
Copy link
Member Author

jellysquid3 commented Apr 4, 2024

(Preliminary) We would need sign-off from the following individuals in order to successfully re-license the project under the terms of Polyform Shield 1.0.0.

The list of contributors has been filtered according to what constitutes as a "non-trivial and copyrightable change."

  • jellysquid3 (~700 commits, ~250k LOC, primary maintainer)
  • IMS212 (~90 commits, ~9k LOC, maintainer)
  • Douira (~5 commits, ~6.5k LOC, contributor)
  • PepperCode1 (14 commits, ~2.5k LOC, contributor)
  • Pajicadvance (4 commits, ~200 LOC, contributor)
  • Technici4n (~3k LOC, contributor)

Further digging will need to be done to ensure that all relevant authors are covered and that we have contact details for each.

@PencilVoid

This comment was marked as resolved.

@jellysquid3

This comment was marked as resolved.

@leo60228

This comment was marked as resolved.

@leo60228

This comment was marked as resolved.

@PlayfulPiano

This comment was marked as resolved.

@leo60228

This comment was marked as resolved.

@PlayfulPiano

This comment was marked as resolved.

@IMS212

This comment was marked as resolved.

@PlayfulPiano

This comment was marked as resolved.

@IMS212

This comment was marked as resolved.

@KSPAtlas

This comment was marked as off-topic.

@PlayfulPiano

This comment was marked as resolved.

@IMS212

This comment was marked as resolved.

@PlayfulPiano

This comment was marked as resolved.

@jellysquid3
Copy link
Member Author

Practically speaking, there is no risk that someone wanting to download Sodium would prefer to use Angelica on a very old version of Minecraft. That serves a completely different category of users and the platform is so different that no competition could ever possibly exist.

Of course, the present revision of Sodium's source code would remain licensed under the LGPL, so they could continue to use that without issue. And where there is confusion, we can always talk with other people directly to clear this up and give special grants of license where needed (which no doubt the authors of Angelica are already used to, given how old these mods are.)

But when it comes to porting the mod to other mod loaders (especially on the same version of Minecraft), the argument that it's "not competing" becomes unlikely.

The presence of a third-party fork which runs on alternative mod-loader, especially for a current version of Minecraft, will almost certainly de-incentivize using the upstream version, because the alternative platform has greater momentum and existing market share. This is largely the same issue with companies like Amazon pushing SaaS offerings for other open source software.

@jellysquid3
Copy link
Member Author

However, for many open-source projects, I could see the loss of OSI-compliance as being a bigger deal than the need to provide source code under the terms of the LGPL.

This is possible. Personally, I don't see it being any worse than GPL virality other than for the fact that it isn't OSI-compliant. Because in the general case, most mods are not GPL licensed, and the current copyleft clause is engaged if you directly link the source/binary code into your project.

That said, not being OSI-compliant may (and probably will) introduce hesitation when it comes to using our code, as most people are not lawyers or willing to deal with licensing. But in terms of actual obstacles for real-world use, one does not seem worse than the other.

And really, I think this is an acceptable trade-off to make either way. We've only seen the occasional usage of our code in other projects, and in almost all cases, those people have asked for license grants other than LGPL, anyways.

@sylv256
Copy link

sylv256 commented Apr 5, 2024

So then these forks would have to be shut down or require to pay some form of license to continue operating?

Quick second reply to this: There is no "paid license"; the single requirement is that the fork does not compete with Sodium. If someone can search for Sodium and use your mod instead on the same version, it's probably competition.

That's not what the license says. Directly quoting the license,

Competition

Goods and services compete even when they provide functionality
through different kinds of interfaces or for different technical
platforms. Applications can compete with services, libraries
with plugins, frameworks with development tools, and so on,
even if they're written in different programming languages
or for different computer architectures. Goods and services
compete even when provided free of charge. If you market a
product as a practical substitute for the software or another
product, it definitely competes.

@PlayfulPiano
Copy link

Practically speaking, there is no risk that someone wanting to download Sodium would prefer to use Angelica on a very old version of Minecraft. That serves a completely different category of users and the platform is so different that no competition could ever possibly exist.

Of course, the present revision of Sodium's source code would remain licensed under the LGPL, so they could continue to use that without issue. And where there is confusion, we can always talk with other people directly to clear this up and give special grants of license where needed (which no doubt the authors of Angelica are already used to, given how old these mods are.)

But when it comes to porting the mod to other mod loaders (especially on the same version of Minecraft), the argument that it's "not competing" becomes unlikely.

The presence of a third-party fork which runs on alternative mod-loader, especially for a current version of Minecraft, will almost certainly de-incentivize using the upstream version, because the alternative platform has greater momentum and existing market share. This is largely the same issue with companies like Amazon pushing SaaS offerings for other open source software.

That's good clarification regarding older versions, which is good to know. I do want to ask about your specification about modern versions. Are you meaning versions in which sodium exists in any medium, even if it's an outdated version?

Example, would forking and backporting the code under the new license be considered an issue for forge 1.16-1.18, assuming there aren't plans to have official multiloader sodium support for those older-but-still-modern versions? And if that is an issue, are you planning to include that support in the future, or will those versions be forced on forks with only the older license's code?

@AngellusMortis
Copy link

AngellusMortis commented Apr 5, 2024

However, for many open-source projects, I could see the loss of OSI-compliance as being a bigger deal than the need to provide source code under the terms of the LGPL.

This is a real issue. It appears that Rubidium does in fact ask for donations, which is not cool, but Embeddium does not. I would find it very unlikely that Embeddium and the Embeddium dev has the intent to actually cut anyone from Sodium out of their own project. They seem to be active in contributing to issues on Sodium itself. It also seems like Embeddium has even made an effort to keep Sodium's donation button in game.

Can you actually provide examples or details of how Embeddium has "this continued campaign against us, which has the ultimate goal of cutting us out of our own project"? I am fairly certain if that NeoForge version came out for 1.20+, Embeddium would likely either quickly disappear or work to merge any changes back into upstream.

However, I want to make it clear that this is not designed to be a kind of "attack" or "campaign" against Sodium. Just pointing out the dangers if choosing to migrate to a non-OSI approved license. It could very well backfire and blow up as it is for Redis right now.

You cannot really blame the community for wanting and making a Forge port that gains more downloads than Sodium does when Forge is significantly more popular than Fabric is. I absolutely understand why Sodium does not want to support Forge and it is very clear the rest of the Forge community understands that as well, hence why NeoForge exists today. I just have not seen any reason to believe Embeddium is doing anything to take control away from Sodium. In fact, it seems like Embeddium exists to take control from Rubidium and restore control back to Sodium instead.

Anyways, long winded reply aside, I think it would be a great idea to first release a 1.20+ NeoForge port of Sodium before making any choices about moving away from OSI licensing. I may be wrong about Embeddium, but I think you may find the community supports you a lot more then you might think. Sodium has contributed an astronomical amount to the Minecraft community to actually bring us away from Optifine.

@Joshument
Copy link

As much as I understand the reasoning, I don't think this license is right. If someone wishes to improve upon the existing sodium codebase, especially for an unsupported version, how will that be addressed? Is it "competing" with sodium if it's patching bugs in a version of sodium that's no longer maintained? Why can't we backport content to versions you don't work on anymore? I feel like there's a lot of issues with this license due to the nature of Minecraft and how it's a live-service game you are modding. Unless you can patch up these holes I'm not sure if I agree with the change.

@Joshument
Copy link

Furthermore, I'd like to add that making a change like this will simply give the people antagonizing you more fuel for fire. I don't think it would end well from a harassment standpoint either.

@Fnige
Copy link

Fnige commented Apr 5, 2024

As much as I understand the reasoning, I don't think this license is right. If someone wishes to improve upon the existing sodium codebase, especially for an unsupported version, how will that be addressed? Is it "competing" with sodium if it's patching bugs in a version of sodium that's no longer maintained? Why can't we backport content to versions you don't work on anymore? I feel like there's a lot of issues with this license due to the nature of Minecraft and how it's a live-service game you are modding. Unless you can patch up these holes I'm not sure if I agree with the change.

As jelly has said earlier

And where there is confusion, we can always talk with other people directly to clear this up and give special grants of license where needed (which no doubt the authors of Angelica are already used to, given how old these mods are.)

You can always ask for permission or even contribute towards sodium instead of making your own fork

@jellysquid3
Copy link
Member Author

If someone wishes to improve upon the existing sodium codebase, especially for an unsupported version, how will that be addressed?

Most patches do not require Sodium to be distributed wholesale again. It remains possible for "addon mods" to apply mixins to an existing version of Sodium, which is in fact how mods like Iris and Nvidium work.

Is it "competing" with sodium if it's patching bugs in a version of sodium that's no longer maintained?

The license explains regarding discontinued works...

## Discontinued Products

You may begin using the software to compete with a product
or service that the licensor or any of its affiliates has
stopped providing, unless the licensor includes a plain-text
line beginning with `Licensor Line of Business:` with the
software that mentions that line of business.  For example:

> Licensor Line of Business: YoyodyneCMS Content Management
System (http://example.com/cms)

We do not intend to block the ability of people to patch and update versions of Sodium which we no longer maintain, but in every case I can imagine, simply providing an addon mod (the status quo) which mixins to Sodium would be enough, and would not interfere with the non-compete part of the license.

@sylv256
Copy link

sylv256 commented Apr 5, 2024

Furthermore, I'd like to add that making a change like this will simply give the people antagonizing you more fuel for fire. I don't think it would end well from a harassment standpoint either.

Honestly,—and this hasn't been said enough—people need to learn to stop harassing FOSS devs for not meeting their demands.

@sylv256
Copy link

sylv256 commented Apr 5, 2024

I also want to add: It's not the fault of JellySquid or any of the developers in CaffeineMC the harassment that has occurred, and spreading FUD about every single one of JellySquid's decisions is not the best course of action and will only worsen the harassment. More specifically, it is the actions of the community that results in the harassment, and it seems that open source communities favor cancel culture and intimidation when their privileges to fork and receive consistent updates are threatened.

@DUDEbehindDUDE
Copy link

I know I don't really have much say in what happens with the project but I think it's worth putting my 2 cents into this.
Personally, I am heavily against this change, and I think that a number of people would agree with me that this is a step backwards more than it is a step forwards. If this is a change that actually gets pushed and made, I will be a lot less likely to use sodium and related projects in the future. As you mention, sodium has indeed been a very big factor of the modern day modding ecosystem, and a lot of that has to do with sodium's open license, permitting others to fork it and make code changes. In fact, the modding community as it is today has thrived on the open-source push that has existed on more modern versions. I mean, comparing the modding community to bukkit-based versions of the game, the experience here is a whole lot better because we don't have to pay for random plugins, we can view and audit the source code, and most importantly, fork projects and make changes to them that simply wouldn't be possible in a world without permissive licenses such as MIT and GPL. Overall, I am a firm believer of FOSS software, and I don't really agree with this license change that prohibits users from being able to modify code in ways that they would like.

Aside from this, I have a number of criticisms with things that you mention in your post:

Third-party forks of Sodium currently account for more downloads than Sodium itself has ever received. That means, more often than not, players are using our code via a third-party distribution or fork rather than the official upstream version (which we receive a fraction of the revenue from, if any.)

This is a very misleading thing to say. Yes, it is 100% true, rubidium and embeddium account for ~42 million downloads on Curseforge alone (~43M if you include Modrinth) while sodium has ~31 million downloads on curse (~39M including downloads from modrinth). However, you are leaving out the key piece that sodium does NOT have any forge/neoforge port whatsoever as of right now. Currently, there is no first party support for forge/neoforge whatsoever, and that is the only reason why this is the case at all. I haven't even heard of another sodium fork on fabric, meanwhile, if I want to get decent performance with >50-100 mods downloading rubidium or embeddium is a necessity. And I would much rather download a first party version of sodium than deal with the number of bugs that I have experienced on the current forge ports which I have never really had on sodium apart from early alpha builds way back when sodium was first being developed. With rubidium specifically, there's a bug in 1.20.1 which straight up makes the game unplayable for me, which was never fixed. I can almost guarantee that if a first party forge/neoforge port existed for sodium, this issue would be almost gone.

We have always been at the mercy of more powerful individuals, since their response is more or less "we'll fork your software" when we do something they do not agree with.

This sounds more like empty threats to me. It's unfortunate that this is a thing, and I get where you're coming from. I don't really know the extent of the harassment you've been getting, and I therefore can't really be speaking that much about it, but ultimately every big project is going to get at least some criticisms/harassment, especially one that has over 30 million downloads. Apart from the harassment though, I don't really think that most of what you have been getting is nearly as much as you make it out to be, in the sense that people would make forks and/or rid sodium. People can say that they will fork a project all they want, but with a project like sodium, it takes a lot of technical know-how to be able to actually make good, stable optimizations; people that fork projects like this will always be behind upstream, and features from sodium will likely be much more stable than these forks. In addition to this, users tend to catch on when they find out the truth behind projects like this and over time these forks will likely end up being criticized. Also, if this is really just a repackaged version of sodium that you're talking about here, there's no way more people are going to be using it. I mean, with me personally, when I first heard of using embeddium over rubidium, I just wanted to stick with rubidium because embeddium was a lot smaller and I didn't entirely trust that it was really that different; it was only when things in rubidium stopped working for me and I learned more about the developer's other projects that I decided to switch over. I think that it's safe to say that the majority of sodium's user base is fairly passionate about the work that has been done with sodium, and has sympathy for the developers. There's always going to be people that unreasonably criticize projects and stuff, but most people don't really have a reason to. You've done great work!

Changing the software license of this project will not end the abuse overnight, but it will take away leverage other people hold over me, and ensure that other people cannot unfairly cut me out of revenue for my projects.

As an individual, this is a change that would make me much more hesitant to include sodium in any project that I use, or to use sodium at all. I personally am highly against mod developers that insist on making their mods closed-source or taking away people's ability to make forks of software, and to me when a mod developer does this it is a sign that they care more about themselves and their own pride than about the community and the actual people that are using their mod. To be clear, I am in no way trying to harass or otherwise say bad things about sodium and its related projects, without them I would be stuck with optifine (ugh) and a severely worse experience, and I am very grateful for projects such as this. However, a change such as this that takes away the rights of users to make forks and stuff is just a big red flag for me, and probably much of the open-source community as a whole.

Additionally, I don't see how this would do anything to counteract the negativity and harassment towards the project. There are still going to be people that criticize things, and this does absolutely nothing to counteract this. If anything, this is a change that could result in MORE backlash, due to the nature of the change being made.

You cannot use any portion of the source code or binaries to "compete" with the provider of the software. This means that other people would no longer be permitted to fork the mod and distribute it as a substitute for the original.

Competition is not a bad thing? Competition is a healthy thing that ultimately results in an improvement to the ecosystem as a whole. And again, with these "forks" that are just repackaged versions of sodium, if they don't provide any immediate benefit, then I am not switching to them, and at the end of the day, they are completely dependent on sodium. If sodium dies, they will die along with it. However, by doing this, you're also stopping forks of sodium that actually do have a net benefit to the community, either by adding new features, improving performance, enhancing mod compatibility, etc. (and don't forget because the GPL is a copyleft license, these could all be merged into sodium!).

Free and open source licenses exist to build better software. That goal can still be accomplished while ensuring that other people can not "compete" with upstream by repackaging our code.

Free and open source licenses exist to build better software. Therefore, we are removing the ability for others to be able to release forks of, and improve the software for others. That's what this speaks of to me.

Anyway, that's most of what I have to say about this change, anything else I would have to add would be repeating myself more than I already am. It's unfortunate that there are people out there that like to harass developers like this, but ultimately I think that this license change harms the community more than it does good. I am personally very much against it and if this really is the direction this project is headed in, I don't think I'll be supporting or using this project in the future.

@douira
Copy link
Collaborator

douira commented Apr 5, 2024

Non-mainstream modding communities (imageboards, Russian forums, etc.) have maintained unauthorized forks of even wholly proprietary mods in the past.

It's mostly about distribution platforms, which do care about licenses. Unauthorized modding communities are largely relegated to irrelevance, especially financially. An existing example of this is the distribution of mods in China where the DMCA doesn't work and there isn't anything to be gained from fighting them anyway.

@Janmm14
Copy link

Janmm14 commented Apr 5, 2024

Github EULA allows you to fork any public project, people can contribute to your fork and anybody can download the sources of your fork and compile the mod on their own. But there is a provision in Gitlab EULA that you must have the permissions/rights of any content you upload that you don't own, and with the new license you would NOT have the permission to distribute the binaries as it would be a product in direct competition to Sodium.

Anyway, I'm a firm believer that each project must/should have the autonomy to license their code whoever they choose, and the community will decide how to react.

GitHub EULA states:

To the extent there is conflict between the license terms covering the Open-Source Components and this EULA, the terms of such licenses will apply in lieu of the terms of this EULA.

@IMS212
Copy link
Member

IMS212 commented Apr 5, 2024

To be clear; This license change does not impact the rights given to you by GitHub to fork and edit your fork; only redistribution of said fork and binaries.

@Janmm14
Copy link

Janmm14 commented Apr 5, 2024

To me this shows that OSS licenses are sometimes chosen without realizing their impact and what this actually allows others to do. Having a really permissive license allows for a lot of freedom and customization, but it also allows to remove donation buttons and redistribute it however anyone wants.

If you are not okay with these terms anymore, changing them for further updates is a valid option if the main contributors agree.

The reported harassment of (open source) developers is not okay at all.

Any complaints (mostly not here) telling anyone they would need to continue providing things for free or keeping the status quo are delusional.

@CaffeineMC CaffeineMC deleted a comment from Su5eD Apr 5, 2024
@jellysquid3
Copy link
Member Author

jellysquid3 commented Apr 5, 2024

We are temporarily limiting interactions with the repository to people who have previously contributed to the project, in order to prevent unnecessary engagement as this circles around the internet. The vote bombing on issues is recent (within the past few hours) and comes from very specific communities.

Most questions about the terms of the licensing agreement have been answered, and I have been collapsing them as "resolved" to help focus discussion (read: not banning users who ask questions.)

@jellysquid3
Copy link
Member Author

As of the time of posting this, my plan going forward is to relicense the project under the Polyform Shield 1.0.0 terms, with approval of the aforementioned contributors (which we continue to look through to make sure all parties are contacted.)

@IMS212
Copy link
Member

IMS212 commented Apr 5, 2024

I, IMS212, hereby agree and consent to having my contributions to the Sodium project be relicensed under the new terms of the Polyform Shield 1.0.0 license, irrevocably and without exception.

@pajicadvance
Copy link
Member

I, pajicadvance, hereby agree and consent to having my contributions to the Sodium project be relicensed under the new terms of the Polyform Shield 1.0.0 license, irrevocably and without exception.

@douira
Copy link
Collaborator

douira commented Apr 5, 2024

I, douira, hereby agree and consent to having my contributions to the Sodium project be relicensed under the new terms of the Polyform Shield 1.0.0 license, irrevocably and without exception.

@jellysquid3
Copy link
Member Author

jellysquid3 commented Apr 5, 2024

I want to clarify some points of confusion that have been shared online regarding this decision.

"Sodium will no longer be free, and it's going behind a paywall!"

No. We are not putting the mod behind a paywall. Users can still download and use Sodium with as they were before, and mod pack authors can continue to include Sodium without concern. When we say the new license is no longer "free and open source", we are saying that our license does not comply with the trademark that is "free and open source".

The source code to Sodium will still be publicly available. You will be able to use this source code for pretty much all intents and purposes unless that purpose is competing with us. We will not take down existing versions of our mod, or otherwise charge people to use the mod. The current revision of the source code prior to this change, of course, will still remain licensed under the GNU LGPLv3.

"They are threatening to end development unless they're paid more."

No. Although, this one could probably be attributed to me not being clear enough in the original post. What I'm saying is that either the abuse we're receiving needs to stop (which we hope to achieve by the changing of the license) or the economics of the situation need to make sense in order to justify putting myself through it.

"This license is a crayon license, or is no different than 'All Rights Reserved'. Also, the terms are obviously unenforceable."

The Polyform project consists of a group of lawyers with over a hundred years of combined experience with licensing software. There is no reason to believe that the license is unenforceable, when many other software projects have similar non-compete clauses.

Yes, the license has favorable terms for the author of the software. That's by design.

"The license prevents any competition in the Minecraft space!"

No. The license only governs how our source code can be used. If you create another optimization mod, with your own original work, the license has no bearing on what you do.

@0-x-2-2
Copy link
Contributor

0-x-2-2 commented Apr 6, 2024

I, 0-x-2-2, hereby agree and consent to having my contributions to the Sodium project be relicensed under the new terms of the Polyform Shield 1.0.0 license, irrevocably and without exception.

I am aware that my current changes in upstream Sodium can most definitely be used under fair use but this also includes my open pull request which the answer is more vague but probably the same thing.

@omo50
Copy link

omo50 commented Apr 6, 2024

I find it utterly disappointing how the modding community tries its hardest to push good developers away.
I find the somewhat negative response to this change stupid as it doesn't affect anyone beside a small group of people who are actually causing this change in the first place. I wish everyone who has made this mod possible the best

@MeeniMc
Copy link
Contributor

MeeniMc commented Apr 6, 2024

I MeeniMc hereby agree and consent to having my contributions to the Sodium project be relicensed under the new terms of the Polyform Shield 1.0.0 license, irrevocably and without exception.

As 0-x-2-2 stated for himself, my changes are still pending prs and mostly would qualify as small/fair-use, but there is no harm in clarifying preemptively.

@Grayray75
Copy link
Contributor

I, Grayray75, hereby agree and consent to having my contributions to the Sodium project be relicensed under the new terms of the Polyform Shield 1.0.0 license, irrevocably and without exception.

@VenomousSteam81

This comment was marked as off-topic.

@PepperCode1
Copy link
Contributor

I, PepperCode1, hereby agree and consent to having my contributions to the Sodium project be relicensed under the new terms of the Polyform Shield 1.0.0 license, irrevocably and without exception.

@jellysquid3
Copy link
Member Author

jellysquid3 commented Apr 6, 2024

This is now completed as we have relicensed the project to the Polyform Shield 1.0.0 terms.

While we have made our best effort to contact all authors with significant changes and ensure there are no objections to the license change, the possibility for error is non-zero. If you are a contributor to the project who was not been contacted, and you wish to object to this change in license, please send me an email so that an agreement can be reached. Thanks.

@embeddedt
Copy link
Contributor

I, embeddedt, give explicit permission for JellySquid to relicense (under PolyForm Shield 1.0.0) the following PRs and the commits they contain, contributed by me:

  1. Ignore undersized quads #2060
  2. fix: use vanilla render path and log warning when incompatible VertexConsumer is detected #1842
  3. Terminate workers by releasing more semaphore permits instead of interrupting #2012
  4. Improve fog shader parity to match vanilla #2097
  5. Fix parity issue in Sodium's getFacing optimization #2121
  6. Fix biome colors being retrieved differently from vanilla #2131
  7. Fix clouds still being rendered if height is NaN #2150
  8. Fall back to non-vertex-specific coloring if mods override color providers #2158
  9. Ignore world state when rendering debug worlds #2161
  10. Fix MatrixHelper producing slightly different results from vanilla #2169
  11. Fix air blocks with block entity renderers not rendering #2170
  12. Keep times of animated sprites in sync #2177
  13. Fix incorrect pointer math in SpriteContentsInterpolationMixin #2185
  14. Add bounds checking in WorldSlice #2173
  15. More VertexBufferWriter fallbacks #2115
  16. Prevent scheduleRebuild from being called off-thread #2168
  17. Mark sprites rendered through vanilla block model renderer as active #2254
  18. Apply BufferBuilder optimizations via delegate #2241
  19. Migrate to official mappings #2311 (for completeness; that said, I would never have deemed this particular contribution copyrightable, since it was generated by some scripts I wrote and my customized build of Fabric Loom)

In addition, I give explicit permission for JellySquid to relicense (under PolyForm Shield 1.0.0) the patch from the following commit: FiniteReality/embeddium@95235a6, which was upstreamed in a modified form on the 1.20.4/0.6-multiloader branch.

@NotAlexNoyle
Copy link

NotAlexNoyle commented Apr 9, 2024

I, embeddedt, give explicit permission for JellySquid to relicense (under PolyForm Shield 1.0.0) the following PRs and the commits they contain, contributed by me:

Why are you authorizing this when you are maintaining an open source fork? You effectively have veto power here and you are using it to sign off on proprietary software. Shame.

@embeddedt
Copy link
Contributor

Simple answer: we'd rather focus on further Embeddium development than contesting this relicense.

@Cuteistfox

This comment was marked as off-topic.

@Cuteistfox

This comment was marked as off-topic.

@Cuteistfox

This comment was marked as spam.

@PumpkinXD
Copy link

I wonder... if someone ported sodium0.6+ to ancient versions like 1.8.9 or 1.7.10 then request PR or transfer the repo here, hmmm can this get around... licensing and donating things? (releasing ports under officinal channel)

(uh... my native isn't English and I'm not good at expressing things/ideas, sorry)

@MeeniMc
Copy link
Contributor

MeeniMc commented Aug 1, 2024

Yes, making the PR includes licensing rights for the new contributions to the holder of the polyform license. See the first line of https://github.com/CaffeineMC/sodium-fabric/blob/dev/CONTRIBUTING.md.

@CaffeineMC CaffeineMC locked as resolved and limited conversation to collaborators Aug 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
P-high Priority: High
Projects
None yet
Development

No branches or pull requests