-
Notifications
You must be signed in to change notification settings - Fork 822
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
Comments
Slay 💅 |
(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."
Further digging will need to be done to ensure that all relevant authors are covered and that we have contact details for each. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
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. |
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. |
That's not what the license says. Directly quoting the license,
|
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? |
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. |
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. |
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. |
As jelly has said earlier
You can always ask for permission or even contribute towards sodium instead of making your own fork |
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.
The license explains regarding discontinued works...
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. |
Honestly,—and this hasn't been said enough—people need to learn to stop harassing FOSS devs for not meeting their demands. |
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. |
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. Aside from this, I have a number of criticisms with things that you mention in your post:
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.
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!
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.
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. 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. |
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. |
GitHub EULA states:
|
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. |
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. |
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.) |
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.) |
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. |
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. |
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. |
I want to clarify some points of confusion that have been shared online regarding this decision.
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.
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.
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.
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. |
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. |
I find it utterly disappointing how the modding community tries its hardest to push good developers away. |
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. |
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. |
This comment was marked as off-topic.
This comment was marked as off-topic.
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. |
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. |
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. |
Simple answer: we'd rather focus on further Embeddium development than contesting this relicense. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as spam.
This comment was marked as spam.
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) |
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. |
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:
But, it differs in a significant way, which makes it no longer a free and open source software license:
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:
The text was updated successfully, but these errors were encountered: