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

Relicensing (bits of) CC: Tweaked #1339

Open
SquidDev opened this issue Feb 16, 2023 · 114 comments
Open

Relicensing (bits of) CC: Tweaked #1339

SquidDev opened this issue Feb 16, 2023 · 114 comments
Labels
feedback wanted Tell me what you want, what you really really want.

Comments

@SquidDev
Copy link
Member

SquidDev commented Feb 16, 2023

I've been wanting to do this for years, and seriously considering it for about 4 months now, so might as well get the ball rolling somehow!

The Problem

When ComputerCraft was originally open sourced, it was released under the CCPL (ComputerCraft Public License), a derivative of the MMPL (Minecraft Mod Public License). Unfortunately, both the MMPL and CCPL have a couple of issues, which range from irritating to gaping holes:

  • It's not a standard OSI-approved license. While in some sense this is purely a cosmetic issue, it has stopped several people contributing, and also blocks us from participating in some initiatives such as Modtoberfest.

  • Code licensed under the CCPL can only be used in other Minecraft mods, and that code must be licensed under the CCPL. This means that any usage of the code in a non-mod project (including emulators or CC programs) violates the license.

    This is an incredibly restrictive clause, to the point that it's counterproductive. I can think of half a dozen (well meaning and useful!) projects off the top of my head which violate this clause.

  • All dependencies of ComputerCraft must be licensed under conditions comparable to the CCPL. We inherit this condition from the MMPL, and it's definitely a problematic one. While I do not believe it's the intention, the practical outcome is that all dependencies must be licensed under the CCPL. While there are exceptions for Minecraft and the mod loader (Forge/Fabric), there aren't any exceptions for other dependencies, such as the Java Standard Library or Netty.

    This suggests that even ComputerCraft itself violates its own license, a position which is clearly untenable!

The difficulty of relicensing

Given CC/CC:T's license is somewhere between awkward and untenable, I would like to relicense CC: Tweaked under something more standard and permissive.

Relicensing a project requires getting every single previous contributor to sign off on the new license. This is incredibly hard for a couple of reasons:

Firstly, CC: Tweaked has had 98 people contribute to it. While 20-30 of these people have only committed trivial changes, which don't require permission, this is still a lot of people and will be a slow process. I remember Forge's relicensing process took months, and I don't think BuildCraft ever managed to complete theirs!

Secondly, and perhaps more seriously, this list of people includes Dan. I have raised relicensing CC with Dan in the past, and while he's been receptive, as of writing nothing concrete has happened. I think we should assume that we will NOT be able to get Dan's permission to relicense his code.

Alternatives

While we cannot change the whole mod, I do think we should aim to relicense as much code as possible under something more permissive.

I'm proposing using the Mozilla Public License 2.0 (MPL 2.0) as the license of choice here. This is a weak copyleft license, which means that changes to the original code must be released (more or less forcing forks of the mod to remain open source) but unlike the GPL (or derivatives) is not viral, meaning it can be used in more permissively licenced projects.

In terms of actually handling the relicensing, I believe our best route here is to adapt the REUSE project's conventions: tracking copyright and licensing on a file-by-file basis, rather than a blanket license for the whole project.

I'm not entirely sure this is Correct(TM): if anyone in the UK knows a good source of legal advice for OS software licensing please do get in touch. However, I think it's a Best Effort given the current mess we're in.

In closing

I don't know if any of the above sounds remotely sensible. Would appreciate any and all feedback here!

I'm probably going to let this issue sit for a few weeks to gather some feedback, then will update this issue on whether I want to go ahead with this or not.

@SquidDev SquidDev added the feedback wanted Tell me what you want, what you really really want. label Feb 16, 2023
@SquidDev SquidDev pinned this issue Feb 16, 2023
@zarlo
Copy link

zarlo commented Feb 18, 2023

a side note if you want to port the whole project to kotlin should allow you relicense with out needing to get permission

@SquidDev
Copy link
Member Author

While a rewrite would be possible (either to Kotlin or staying in Java), it's an incredibly large task. I don't have exact numbers here, but I'd estimate there's about 25k lines of Java and 10k lines of Lua1 where Dan still retains the copyright. While these things have been done in the past, I just don't think we've got enough people to do it!

Footnotes

  1. Tokei reports 32k lines of Java and 13k lines of Lua, in projects/*/src/main (excluding comments and whitespace). I honestly don't know how much entirely new code has been added.

@zarlo
Copy link

zarlo commented Feb 18, 2023

i use the word port not rewrite as jet-brains has tools that automates the process to go from java to kotlin that would just leave the lua code

@SquidDev
Copy link
Member Author

Converting code to another language doesn't change the copyright. It's a bit like translating a book to another language - the original author still retains ownership!

@zarlo
Copy link

zarlo commented Feb 18, 2023

well i know that the Australian government begs to differ im guessing others do to

@MCJack123
Copy link
Contributor

For the record, I approve of any license changes to my contributions as long as the license is OSI-approved.

@SquidDev SquidDev added this to the 1.104.0 milestone Mar 14, 2023
@SquidDev SquidDev removed this from the 1.104.0 milestone Mar 28, 2023
@SquidDev
Copy link
Member Author

SquidDev commented Mar 29, 2023

The initial relicensing work is now complete and merged. I'm going to start the process of reaching out to people, requesting permission to relicense their contributions. I'm planning to do this in batches, just to make my life a bit easier.

If you're in the list of people below (or have contributed to CC:T in the past and feel like getting ahead of things), would you be able to comment with the following message:

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

If you're not happy to relicense your contributions, please also let me know, so I know not to poke you further!

User Permission granted Contributions
@bradyakent ✔️ 9ae0f4a
@emmachase ✔️ Numerous
@JakobDev ✔️ Numerous
@Lemmmy ✔️ Numerous
@Lupus590 ✔️ Numerous
@MAGGen-hub ✔️ #918
@MCJack123 ✔️ Numerous
@Merith-TK ✔️ #817
@Naheulf ✔️ #488
@ouroborus ✔️ #1304
@plt-amy ✔️ Numerous
@powerboat9 ✔️ #274, #276
@Ronan-H ✔️ #743, #740, #738
@SirEndii ✔️ #1083
@toad-dev ✔️ Numerous
@Wojbie ✔️ Numerous

@Wojbie
Copy link
Contributor

Wojbie commented Mar 29, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my project contributions to the CC: Tweaked project.

I am really liking the direction this re-licensing takes project in.

@ouroborus
Copy link
Contributor

Is there an option to transfer whatever copyrights I may hold on my contributions to the project, or such, rather than just licensing them?

@SquidDev
Copy link
Member Author

SquidDev commented Mar 29, 2023

Yep, I'm happy to do that, though I think in that case I'd probably rather both? The legal complexities of copyright assignment are a bit more messy, so I'd like to CYA as much as possible!

I don't know if the following sounds reasonable?

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my contributions to the CC: Tweaked project.

@SirEndii
Copy link
Contributor

SirEndii commented Mar 29, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my contributions to the CC: Tweaked project

@ouroborus
Copy link
Contributor

Works for me. I consider my contribution to be a donation to the project. My continuing to hold whatever copyright I might have goes against my intent with regards to my contribution to this project.


I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my CC: Tweaked project contributions to the CC: Tweaked project.

@Naheulf
Copy link
Contributor

Naheulf commented Mar 29, 2023

You can changes / multi-license my past contributions in this project. As may times as you want as long as:

  • no one can claim ownership of that code
  • the code AND the changes MUST remain open sourced (Edit: to reuse the OSI definition: there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost)

@Lemmmy
Copy link
Contributor

Lemmmy commented Mar 29, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my project contributions to the CC: Tweaked project.


Great to see this is finally happening, fantastic work on the relicensing effort so far!

@Erb3
Copy link
Contributor

Erb3 commented Mar 29, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@emmachase
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my project contributions to the CC: Tweaked project.

@Lupus590
Copy link
Contributor

Lupus590 commented Mar 29, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

I should note that there is at least one PR that has commits by me where I do not claim ownership of the code, instead, the code was copied from other changes that @SquidDev was making at the time. I will see if I can find the PR mentioned and link it.

@SquidDev
Copy link
Member Author

@Lupus590 Thank you! Is that #603, or is there another one?

@Lupus590
Copy link
Contributor

@Lupus590 Thank you! Is that #603, or is there another one?

Yeah, that's it.

@plt-amy
Copy link
Contributor

plt-amy commented Mar 29, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my project contributions to the CC: Tweaked project.

@Merith-TK
Copy link
Contributor

Merith-TK commented Mar 29, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

I kindly request that all of my past and future contributions made to the Computer Craft project be considered under the MPL-2.0 license, where applicable.

@SirEndii
Copy link
Contributor

SirEndii commented Mar 29, 2023

What would happen to the code of people who do not agree?

And what will be the future license CC:T will use (did not saw it in the messages of squid)?

@MCJack123
Copy link
Contributor

@SirEndii

What would happen to the code of people who do not agree?

That code would remain under CCPL.

And what will be the future license CC:T will use (did not saw it in the messages of squid)?

MPL 2.0 is the goal, though it's highly likely that a portion is still CCPL, so it would be dual-license.

@SquidDev
Copy link
Member Author

What would happen to the code of people who do not agree?

Currently, nothing. That code will remain in the mod and licenced under the CCPL.

If Dan ever agrees to relicense the original ComputerCraft code, then I would probably start looking into rewriting or removing that code, but I think that's pretty unlikely.

And what will be the future license CC:T will use

The main description goes into this in a bit more detail, but the general gist is that we're handling licensing on a per-file basis rather than a blanket project-wide license. New code will be under the MPL 2.0.

I guess for some additional context here on the choice of MPL 2.0, both Dan and I would prefer that CC remains under a copyleft license. I personally don't think GPL and LGPL are a great choice here, as part of the relicensing is to make it easier to reuse components of the mod (especially the ROM) in other projects, hence MPL 2.0 instead.

@Merith-TK
Copy link
Contributor

Personally I would say the ROM can remain under CCPL, since not much has needed to be changed on that front over the years.

However the mod code has been changed alot, to the point where in modern versions I doubt much of the original code even exists outside of references to dan200 java classes.

@RomanPlayer22
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

2 similar comments
@SkyTheCodeMaster
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@Luca-Ilari
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@dirthsj
Copy link
Contributor

dirthsj commented May 26, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

PS: I really like the dual Apache/MIT approach the Rust community uses. Not that it's worth anything this late in the process...

@ralphgod3
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

6 similar comments
@parly
Copy link
Contributor

parly commented May 27, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@theoriginalbit
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@exerro
Copy link
Contributor

exerro commented May 27, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@xAnavrins
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@wackbyte
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@TheWireLord
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@MineRobber9000
Copy link
Contributor

I thought I had already commented here, but apparently not! Fixing that now:

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my contributions to the CC: Tweaked project.

@R93950X
Copy link
Contributor

R93950X commented May 31, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@Ronan-H
Copy link
Contributor

Ronan-H commented May 31, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my contributions to the CC: Tweaked project.

@wackbyte
Copy link
Contributor

I also assign copyright ownership of my contributions to the CC: Tweaked project.

@pcbzzz
Copy link

pcbzzz commented Jun 4, 2023

code from me was provided as public domain, dgaf

@neumond
Copy link
Contributor

neumond commented Jun 7, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@LelouBil
Copy link
Contributor

I assign copyright ownership of my contributions to the CC: Tweaked project.

@Wendelstein7
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

Additionally, I assign copyright ownership of my contributions to the CC: Tweaked project.


As usual, thank you so much for the tremendous time and effort you put in this and other work you do for this project, Squid. I probably can speak for many if I say that computercraft, specifically CC: Tweaked, has had an immeasurable impact on the direction of my life, my interest in programming, the friends I currently have and the talent I'm currently putting forward in my work area. Good luck continuing this project! ❤️

@osmarks
Copy link
Contributor

osmarks commented Jun 19, 2023

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@Paspartout
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.
Additionally, I assign copyright ownership of my contributions to the CC: Tweaked project.

Thank you for this project, had a lot of joy coding in minecraft with it.

@Techman749
Copy link
Contributor

Techman749 commented Jun 19, 2023 via email

@MAGGen-hub
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@khankul
Copy link
Contributor

khankul commented Jan 19, 2024

I thought I already signed this off but I can't find my comment. Oh well.

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@absolument
Copy link
Contributor

I permit the license of my contributions to the CC: Tweaked project to be changed to the Mozilla Public License, v. 2.0.

@SquidDev SquidDev unpinned this issue Feb 2, 2024
@SquidDev SquidDev pinned this issue Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback wanted Tell me what you want, what you really really want.
Projects
None yet
Development

No branches or pull requests