SubnauticaModding / Nautilus-Proto

Archived prototype for Nautilus, the Subnautica Modding API.
https://subnauticamodding.github.io/Nautilus/
GNU General Public License v3.0
6 stars 3 forks source link

Changing License #25

Closed Metious closed 1 year ago

Metious commented 1 year ago

Changes made in this pull request

GPLv3 requires all projects that use Nautilus in any way to license their code as GPLv3 as well. To get rid of this parasite, we will need to change our license. However, since we do not have a Contributor License Agreement (CLA) this change requires an approval from everyone whom their code exists in this repository.

I personally find MIT the best license for our use-case. The argument can be made to use LGPL instead, but I don't think source disclosure is a deal-breaker and the freedom MIT grants is nicer.

For those who weren't around for some time, Nautilus is the successor to SMLHelper and the modding library we will be using moving on.

Contributors with their code present in the library:

Please put an approval stamp to this PR if you agree with this change.

K07H commented 1 year ago

I do not agree to change the licence.

LeeTwentyThree commented 1 year ago

I do not agree to change the licence.

Can you elaborate? What do you suggest?

Metious commented 1 year ago

I do not agree to change the licence.

Can you provide more info on why would you disagree with the change? Does changing to LGPL work for you?

Cattlesquat commented 1 year ago

I'm fine with whichever change you guys want to make - it doesn't offer me the chance to approve the PR or add a check box, but feel free to add.

LeeTwentyThree commented 1 year ago

I'm fine with whichever change you guys want to make - it doesn't offer me the chance to approve the PR or add a check box, but feel free to add.

Thank you, it is required to go to the files changed tab and press the green button there.

K07H commented 1 year ago

I do not agree because SML Helper (or should I say nautilus? since you decided to change the name?) is an open source and free project since the beginning. GPL enforces that (unlike MIT licence which basically allows to do anything, including not disclosing source changes and having paid software).

Metious commented 1 year ago

I do not agree because SML Helper (or should I say nautilus? since you decided to change the name?) is an open source and free project since the beginning. GPL enforces that (unlike MIT licence which basically allows to do anything, including not disclosing source changes and having paid software).

For one, this change will only affect Nautilus, not SMLHelper. GPLv3 specifically forces all projects to license their code under GPLv3, which might not work for some people. An alternative GPL license that also works for us is the GNU Lesser General Public License v3.0.

Additionally, since the game Subnautica is proprietary, they could sue us because the GPLv3 license is not compatible with proprietary software. A change to the license is simply required.

K07H commented 1 year ago

Nah if they wanted to shutdown the project it would have been done since years already. I do not agree to change Nautilus (formerly SML Helper) licence from GPL to MIT. I also refuse to change the licence to LGPL, I want to stick with open source and free project 👍

Metious commented 1 year ago

Nah if they wanted to shutdown the project it would have been done since years already.

Still doesn't mean we should continue writing code for a project that is plainly illegal and suable, does it? I don't think it's smart to continue this despite us knowing that it could happen. Who knows, maybe they change their mind at some point.

Legal inquiries must not be based on speculations. Just because they did not sue us before does not mean they wont consider it in the future.

K07H commented 1 year ago

They didn't sue and they won't sue. They have no rights to do so because it's not an illegal project. Don't make assumptions like if you were an international lawyer please.

Metious commented 1 year ago

This quote is from the bottom of the GPLv3 license page:

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

As you can clearly read, this license is not compatible with proprietary software. Since we are incorporating with a proprietary software, it means we are not following the terms of the license and therefore making illegal moves.

I'm not making assumptions. It's plainly written and I've brought it up now because it can be a problem. Again, just because it hadn't happend before doesn't mean it cant happen in the future.

Please reconsider your decision. This is a major issue if we are not careful.

K07H commented 1 year ago

Nah that's not the legal definition of incorporating into proprietary program. Nautilus (formerly SML Helper) is a separate project.

Metious commented 1 year ago

Nah that's not the legal definition of incorporating into proprietary program. Nautilus (formerly SML Helper) is a separate project.

I believe you're right on the fact that Nautilus is not being incorporated into Subnautica, but it's not because Nautilus is a separate project. More because Subnautica is not released with Nautilus installed.

From the GPLv3 license again:

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

In simpler words, this means that the source code must not depend on code that is not available for free, with the exception of system libraries or general-purpose tools.

Since Subnautica does not meet that criteria, GPLv3 is an illegal license for our case.

K07H commented 1 year ago

It is not illegal, I do not ask for your explanation/"simple words", I understand well how GPL works thank you, you don't need to pretend the opposite just to get people to approve.

SamuramongeDev commented 1 year ago

I approve this 👍

toebeann commented 1 year ago

I want to stick with GPL (which enforces the project to stay open source and free). Thank you.

Would you be happy with LGPL? Still enforces the project to stay open source and free I believe, but means that mods which require Nautilus don't have to be GPL/LGPL or they're in violation of the license.

(That's my layman understanding of the differences anyways)

toebeann commented 1 year ago

The reason I being this is up is because technically right now there are a BUNCH of mods which technically violate the SMLHelper license simply because they are not licensed under GPL.

K07H commented 1 year ago

No I don't want to switch to LGPL either, I want to stick with open source and free projects (which only GPL can enforce). Thanks for suggesting it tho.

K07H commented 1 year ago

By the way, I can see you changed the copyright notice in the project file from "Copyright @ 2019" to "Copyright @ 2023 Subnautica Modding Community". The GPL requires you to keep the original copyright notices intact unless you're the copyright owner (or have the approval of all the owners). Please revert it.

Metious commented 1 year ago

It is not illegal, I do not ask for your explanation/"simple words", I understand well how GPL works thank you, you don't need to pretend the opposite just to get people to approve.

Then please explain the section I quoted in your own words. I don't under why don't you just discuss this like a human being.

I personally cant care less about licensing, but others keep on bring this up to my attention, and as per the last time this was brought up, I was told that depending on a proprietary software in a GPL program violates the terms of this license. I looked into this myself as well and could confirm it within my own interpretation.

Now as I'm not a lawyer and am not the best in the licensing criteria and you claim to understand the GPL license the best, explain it to me.

Again, I mostly don't care about whatever license we're going to end up choosing, but if the idea of the GPL license being invalid in our case is true, then we have to change the license even if it's not likeable.

K07H commented 1 year ago

I already explained my reasons for not wanting to switch to other licenses. Now treating me of a non-human being is going too far. Where do you see that I didn't want to discuss? I already talked a lot in this conversation and gave my reasons, I didn't even have to do it in the first place. I only ask you to respect my decision instead of trying to play with my feelings by saying that SML Helper is illegal or treating me of a under-human being.

Metious commented 1 year ago

You did not try to explain those terms when you think my interpretation is wrong. Just tell me what does "Corresponding Source" in the GPL license mean to you. Your reasonings for wanting to keep the GPL license are respected, but it can be ignored if the license in question is invalid.

Also who the hell talked about SMLHelper? SMLHelper still exists, distributed, and is licensed under GPLv3 in it's own repo. This conversation is about Nautilus which is a different project.

The topic right now is "is the GPLv3 license illegal for depending on Subnautica, which is a non-free proprietary software under the "Corresponding Source" terms of this license? If not, then what does it mean?"

K07H commented 1 year ago

You cannot copy an entire open source project and change its name then pretend it's a different project... That's not how it works.

Metious commented 1 year ago

You cannot copy an entire open source project and change its name then pretend it's a different project... That's not how it works.

Once again, you're dodging the question.

toebeann commented 1 year ago

Please, can we play nice with one another?

The issues brought up pertaining to whether GPL is legal or not IMO are best left to an expert on the law, and not the speculation of a bunch of programmers and modders. However, I will note that it is rather irrelevant IMO when it comes to liability. At the end of the day it comes down to whether UWE want to take action against the modding community or modding projects. Doing so would be incredibly bad PR for them and likely cost them more money in legal fees than they could possibly hope to recoup from the suit. But not only that, if they were to do so, whether this project is GPL, LGPL, MIT or any other license, it would be irrelevant to whether this project would be liable, as THEIR binaries are still under THEIR proprietary license, which means it's completely up to them whether it's okay for us to reference or reverse engineer their binaries or not, no matter what license we use.

So IMO therefore the only point to changing the license is how it pertains to licensees. The end users, and dependent projects.

If OSub wants dependents to require GPL, it is within their right to hold fast to this. I do personally think LGPL is a good compromise as I believe it still requires the Nautilus project itself moving forward to remain open source, but simply does not require dependents to have the same license. Derivatives however must,

LeeTwentyThree commented 1 year ago

I cannot reconsider my position until I can actually grasp OSub's reasons for keeping the project as GPL. All I know is that he believes GPL is the only license that "enforces the project to stay open source and free". Why this is relevant to the issue at hand, I am not sure. OSub, could you elaborate on what your worries are?

Besides that, I only recall arguments over semantics, specifically disagreements over whether GPL provides legal issues for us or not. I do not understand that personally; why can't we be safe rather than sorry? It's not like this change will affect most users. In fact, it should only alleviate our problems. A license change for NAUTILUS is a change that should not affect OSub in the slightest. However, his opposition inconveniences everyone in the community who wants to free this project from unnecessary license restrictions and potential legal troubles.

It is within his right to refuse this change as much as it is in his right to be a contrarian with reasons that seem to be nothing but an irrational fear of forward progress and long-overdue changes. It's especially difficult for me to see the other side considering past actions that imply a grudge rather than careful consideration.

toebeann commented 1 year ago

Please, can we play nice with one another?

This extends to not assuming the worst of each other's positions and intentions, please.

toebeann commented 1 year ago

I have thought on this some more. No matter how we skin this cat, Nautilus is a derivative of SMLHelper. So changing the license of Nautilus is not possible without first changing the license of SMLHelper, so this is blocked by the license of SMLHelper being GPL.

K07H commented 1 year ago

I already gave my reasons even if I didn't need to give them in the first place. I want the project to stay open source and free, which only GPL can enforce. With a permissive license anyone can just copy paste the entire code and slap a proprietary license on it, which is something that is unethical to me. Also I don't even know why you ask further explanations from me as I'm not an international lawyer. Again, I kindly ask you to respect my reasons and my decision. I want all the contributors to appear clearly and not them being obfuscated, and I want the license to stay GPL, these two points are very important to me. You can do anything you want to the code, as long as these conditions are met I will let you do whichever modifications you think are needed to the code.

LeeTwentyThree commented 1 year ago

I have thought on this some more. No matter how we skin this cat, Nautilus is a derivative of SMLHelper. So changing the license of Nautilus is not possible without first changing the license of SMLHelper, so this is blocked by the license of SMLHelper being GPL.

I believe that is why we have contacted every confirmed contributor to SMLHelper regarding the change. If that's not enough I don't know what is.

toebeann commented 1 year ago

I believe that is why we have contacted every confirmed contributor to SMLHelper regarding the change. If that's not enough I don't know what is.

My point is, this is either a derivative work or it is not.

If it is not, then it's not a separate entity, and should live in the same repo, and getting people to consent to the license change affects SMLHelper, too, which likely is partially what OSub disagrees to.

If it is, then it is required to change the license to SMLHelper FIRST.

JKohlman commented 1 year ago

Nah if they wanted to shutdown the project it would have been done since years already. I do not agree to change Nautilus (formerly SML Helper) licence from GPL to MIT. I also refuse to change the licence to LGPL, I want to stick with open source and free project 👍

No I don't want to switch to LGPL either, I want to stick with open source and free projects (which only GPL can enforce). Thanks for suggesting it tho.

@toebeann K07H's reasons are disingenuous. They are requiring sticking to GPL over LGPL. The primary difference between the two is that GPL will require all mods to also use GPL but LGPL does not. Yet their "Cyclops docking mod" is completely closed source which directly violates the license they are attempting to keep.

toebeann commented 1 year ago

I think disingenuous is a leap of assumption, but I do concur that if Cyclops Docking Mod is indeed closed source, then they are violating the license of other SMLHelper contibutors by referencing it. @K07H, care to weigh in on why Cyclops Docking Mod is closed source? Was this intentional? I notice the Nexus Mods page has a GitHub mirror link but it only links to your GitHub profile, not a source repository.

It's also worth pointing out (or admitting) that several of my mods were at least at one point or another a violation of the SMLHelper license as I mostly licensed my mods under LGPL rather than GPL as I was mistaken about SML's license. Although I am moving away from depending on it moving forward as I no longer need it for any of my projects.

K07H commented 1 year ago

I think this is correct, and for my defense it was planned to release the source code. But I got bashed so much on my youtube videos and on the Subnautica Modding Discord server (saying that it was just a lame connector, a trash mod, and so on and so on....) that I just moved on and never actually did the push to Github. Funny to see how far this "lame connector trash mod" has come tho ^^ It is now in the top 10 mods on NexusMods despite it being released years after the first mods. I'm definitely whiling to fix this tho. I will make a release on github tomorrow (it's almost 2am already at my location) to comply with the terms of the GPL.

LeeTwentyThree commented 1 year ago

That works, but it's not an optimal solution IMO. Do you think everyone should have their repositories forced public and licensed under GPL because one or two people disagree with this change?

LeeTwentyThree commented 1 year ago

I already gave my reasons even if I didn't need to give them in the first place. I want the project to stay open source and free, which only GPL can enforce. With a permissive license anyone can just copy paste the entire code and slap a proprietary license on it, which is something that is unethical to me. Also I don't even know why you ask further explanations from me as I'm not an international lawyer. Again, I kindly ask you to respect my reasons and my decision. I want all the contributors to appear clearly and not them being obfuscated, and I want the license to stay GPL, these two points are very important to me. You can do anything you want to the code, as long as these conditions are met I will let you do whichever modifications you think are needed to the code.

Alright, I understand now. I can see your viewpoint for sure, thank you. This is a difficult decision though, because I still believe the risks/restrictions of GPL outweigh the benefits.

toebeann commented 1 year ago

I am too tired.

I have transferred my mods to the organization and have transferred @Alexejhero his repo back and I sent my fork of Radial tabs and Defabricator to @Metious.

I wish yall nothing but the best but I can't deal with the drama anymore.

I am sorry. Goodbye and good luck with everything.

I feel you Purp, wish you the best

K07H commented 1 year ago

I am too tired.

I have transferred my mods to the organization and have transferred @Alexejhero his repo back and I sent my fork of Radial tabs and Defabricator to @Metious.

I wish yall nothing but the best but I can't deal with the drama anymore.

I am sorry. Goodbye and good luck with everything.

I feel you too, I wish I could rest in peace with the subnautica modding... I wish it so much. All the best to you as well and your future projects. OSub

K07H commented 1 year ago

I already gave my reasons even if I didn't need to give them in the first place. I want the project to stay open source and free, which only GPL can enforce. With a permissive license anyone can just copy paste the entire code and slap a proprietary license on it, which is something that is unethical to me. Also I don't even know why you ask further explanations from me as I'm not an international lawyer. Again, I kindly ask you to respect my reasons and my decision. I want all the contributors to appear clearly and not them being obfuscated, and I want the license to stay GPL, these two points are very important to me. You can do anything you want to the code, as long as these conditions are met I will let you do whichever modifications you think are needed to the code.

Alright, I understand now. I can see your viewpoint for sure, thank you. This is a difficult decision though, because I still believe the risks/restrictions of GPL outweigh the benefits.

* I would argue the "obfuscated" contribution history is a non-issue, as they still exist in the history and it is just a symptom of the repository's change. It's a website issue, and we can always put a list of contributors in the README or somewhere similar if needed.

* I can see how an overly permissive license could be problematic. Not sure why you are opposed to LGPL though, since it seems to solve all the problems we have with the current license. I still prefer MIT, but that's something we can discuss later.

* Do you think we are going to make Nautilus closed source or behind a paywall? That would go against all of our values.

LeeTwentyThree all your mods are benifiting from GPL projects so you would never have reached here in the first place without these awesome GPL projects. And yes, I think it was and it's still the optimal solution. That's actually one of the reasons SML Helper made it this far. If you base your project on a free and open source project then it's fair to have your project free and open source as well, and GPL enforces that. There is no restrictions except that you also need to stick with GPL and that you need to keep the copyright notices intact. Both are totally fair and ethical. There is no such thing as "risks", it's not like with permissive licenses. And as to having half of the contributors disappearing from almost every pages on the repository being "just a symptom" (in fact not only contributors but also their fork), well excuse me but I don't think like this and it makes me really sad to see that. Also I just did a little test, it turns out that when you clone a repository all the contributors still appear on the front page. So I don't know how this was made, but that's making me even more sad.

K07H commented 1 year ago

I am too tired. I have transferred my mods to the organization and have transferred @Alexejhero his repo back and I sent my fork of Radial tabs and Defabricator to @Metious. I wish yall nothing but the best but I can't deal with the drama anymore. I am sorry. Goodbye and good luck with everything.

I feel you too, I wish I could rest in peace with the subnautica modding... I wish it so much. All the best to you as well and your future projects. OSub

By the way I edited the above message because I realize I made have misinterpreted MrPurple's decision to approve the change. I didn't realize it could be just a way to leave this subject as soon as possible. I apologize MrPurple. I feel you and me wishing all the best to you was and is truely sincere.

Bricklou commented 1 year ago

From what I understand, if you want to agree on a license, you need one which is "GPL-like" (?) in terms of permissions and usage conditions. But on the other hand, this license must not spread to all the mods which will depends on it. And it also needs to be compliant with the fact that it inject code in a closed-source software. Is that it? 🤔

LeeTwentyThree commented 1 year ago

Unfortunately it seems that we may need to reach an unpleasant compromise, regardless of what most people in the community prefer.

  1. GPL is parasitic in its nature, and due to this, it may be too late to switch.
  2. We seem to be unable to get any response from many people.
  3. OSub is clearly unwilling to change his position, and may be the sole person actively stopping us from receiving a clean license moving forward.
  4. It is not clear if removing contributions is an agreeable solution to solving license disputes. This may only worsen the issue by forcefully excluding a contributor and poses issues of its own when rewriting code that someone else created.

The MOST IMPORTANT THING we have to know if we continue using GPL is this: ALL mods using SMLHelper or Nautilus are legally forced have a GPL license, according to the GPL FAQ. By mistake we were not following this with SMLHelper, and we may even be on grounds for being sued until this is fixed.

I do not like to give up here, but it may be too late. Nautilus, as a derivative or rebranding (not entirely decided) of SMLHelper, may have been forced to use GPL from the moment it was born due to the current license of SMLHelper. GPL was a mistake, but unless we can reach a compromise with OSubMarin, we have to deal with the consequences.

LeeTwentyThree commented 1 year ago

However, this is not fully resolved until we can determine if Nautilus (clarification: any library bound by GPL) can legally exist as a library for Subnautica. I believe it can, but can anyone who spoke earlier about that explain why you think it is a problem?

LeeTwentyThree commented 1 year ago

Feel free to comment here if you want this reopened. For now this change appears to be impossible, but maybe we can think about this again in the future.