-
-
Notifications
You must be signed in to change notification settings - Fork 172
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
Fix license hell of the codebase #128
Comments
ISC and MIT are both similar enough and short enough that IMO it’s acceptable to have both. (Apache 2.0 is very long and complicated, and patents are not an issue with this codebase, so I’m not a fan of that option.)
The elephant in the room are the components derived from the original RGBDS: rgbasm, rgblink, and the HTML documentation.
I’d like to explicitly point out that all ISC‐licensed components — rgbfix, rgbgfx, and charmap.c, as well as the manpages — were written from scratch and are not derived from rgbds or asmotor in any way. |
I just can't find the original files writen by Carsten Sørensen. But yeah, even Justin Lloyd's docs are signed by Carsten... http://otakunozoku.com/RGBDSdocs/geninfo.htm I agree that this kind of license sucks, most of them are broken by design. If you are right, I'd say that the tools are still actually licensed under the GPL. |
This is the best I could find: https://code.google.com/archive/p/asmotor/ |
I’ve added links to the Github repos in the previous comment. I considered rebasing this repo on Carsten’s asmotor. It will be a lot of work though. |
Yes, but I was looking for the code that Justin based his rework on. If Carsten didn't license that version under the GPL it doesn't matter if he did it for a later version, so we need to know the details. I've even considered rewriting it from scratch... |
Actually, it seems the original code had no specific license, but some files have a copyright notice: http://www.rift.dk/rgbds.html Supposing this is the complete original code and nobody has removed any license file, of course. |
Well, the code of that last link doesn't have a license, but the documentation does:
So, since the code doesn't have anything related to that MS-DOS port anymore, we can ignore that last paragraph. The important part is:
Documentation has to be included in Justin Lloyd's code because of I'd say that the modified WTF license doesn't fully comply with |
Hello @csoren, @JustinLloyd, @vegard, (and @bentley). You have been the biggest contributors to this project, and that the licensing issue right now is a bit unclear, I was wondering if we could all agree on the license to use for RGBDS. Personally, I'd like to use GPL (this is a finished tool, and it would be nice to get the improvements that people make) but I'm fine with MIT or similar. Given that https://github.com/csoren/asmotor is licensed under the GPL, I understand that @csoren would be happy to use this license. As far as I see, @JustinLloyd couldn't really change the license after he did his modifications (https://github.com/JustinLloyd/RGBDS-Gameboy-Development-System), so the original one prevails. From that point, everything is just a mess. I've left my thoughts in previous comments. It would be great if this issue could be fixed once and for all. |
I didn't do much but I am happy to relicense my changes under either GPL and MIT assuming all other authors (especially those whose code I modified) agree. |
First of all, I'm really sorry I didn't think of including a license back in the 90's. The only thing I have to say is - I'm fine with whatever you guys decide to do with RGBDS, as long as you decide on a license moving forward. Feel free to relicense my original code (if any is still left) under GPL, ISC, MIT, BSD, APL. I'll just include what I told @bentley when he contacted me, as it contains my thoughts on the matter. What happened back in 1999 was that I had released the source for RGBDS under no particular license, I think. I didn't think a lot about these issues at the time. I released the source mostly so people could have a look and possibly port it to whatever system they wanted. Then Otaku all of a sudden started releasing new versions with fixes and features without my involvement or even talking to me about it. At the time I was pretty annoyed, but at the same time I realised I had probably accomplished what I wanted with RGBDS and so I wasn't perhaps that interested in it anymore. Frankly, I don't remember what was said between Otaku and me. I think I probably handed over maintenance to him but I don't remember any discussion of terms or licensing. I may even have said, do what the fuck you want, or something to that effect. I don't remember. Sorry. I did notice he was very quick to downplay my part in the project, which is kind of a disgusting thing to do, but I dunno man. I just let it slide. Well, some time later I picked up my last released version of RGBDS, because as it turned out, I still had some ideas, I just couldn't quite let it go and so I started rewriting parts I wasn't happy with. It became a one pass assembler, yacc was thrown out, massive internal changes and code clean up. I still hack on it from time to time when I need a feature, but development is very much in infrequent, frantic spurts. I haven't looked at RGBDS at all since I let it go. I have no idea what it's like now. I know that ASMotor is a much better and faster assembler than the RGBDS I left behind, but it's also very different and not even 100% source compatible. I'm not sure you can rebase onto ASMotor easily. I have given the license a lot of thought, and I still believe the GPL is the right choice for ASMotor, for how I want people to be able to use it. In an unlikely and purely hypothetical scenario, you could still bundle ASMotor with a closed source IDE, if that's what you wanted. As long as the IDE would function without the tool chain, and the IDE and tool chain communicated at arms length (that is through the command line), it's fine. For an end user that's great, because the toolchain can be upgraded outside of the IDE. On the other hand, a more permissive license would allow the IDE to embed the assembler, making it less user-servicable. That's not what I want. I guess it all comes down to who you want to give freedom, developers or users. I tend to favor the users. So right now I would not consider changing the license, although I would be interested in hearing your reasons for choosing the ISC license? |
Well, hardly any people are rigorous about licensing now, let alone back then.
Thank you; I appreciate this very much. This makes me much more interested in the possibility of rebasing. Either against asmotor (if the same license terms apply there), or the original RGBDS source code, which I’ve put up here, which might(?) be easier to rebase against, depending on how much Justin’s release added to it. (If Justin’s repo were to be released under a clearer license than “DWYWT,” that would make things easier too). My few original bits are ISC‐licensed. That’s very close to (and compatible with) MIT, but if uniformity would make it any easier, I’m willing to relicense them to MIT directly. |
Thanks for your answers, specially yours, @csoren! It makes things so much easier. If there is some interest to try to rebase on asmotor, I think that GPL would make more sense. However, seeing what the current situation is, I'm happy with any mainstream license that we can agree on. If @bentley really feels like using a more permissive license like MIT, I'm fine with it. After all, this is just a toolchain to develop for the GB, the actual license doesn't really matter that much, it would just be great to have all the code under the same license. It's true that going for MIT would make it really easy to keep all the licenses of the project consistent, most of the files that don't belong to rgbasm or rgblink are licensed under similar terms, getting the authors to agree to a change should be easy (@stag019, any thoughts on rgbgfx?). Regarding Otaku, he couldn't relicense the code without the author's approval, so the only code that can be under the WTF license are his modifications. I don't think that there are many left after all this time, and I also don't see any real conflict with the MIT license (I'm not a lawyer, though). In the end, the spirit of both licenses is the same. It would be great if he said something about this, though. Maybe we could just use a dual GPL/MIT license so that the code can be reused in asmotor without creating licensing problems (in case someone wants to try). It's a bit messier, though. PS: Thanks for that repository, @bentley. |
@csoren First, if I ever mis-stated anything or downplayed your contribution to the code, my abject apologies, it was never my intention. These are conversations from almost 20 years ago, so I don't recall any details. Again, apologies if I ever discredited your work or downplayed it. I uploaded the RGBDS code to github under the "do whatever you want" license, because after 15+ years (at the time), the project was pretty much abandonware and I didn't think much more of it other than "why is this on my hard drive and not on github where someone might make use of it?" Regarding licensing now, I am happy with whatever Carsten decides for the code and anything I have contributed over the time I was maintaining it. If someone else can get use out of the code, have at it. |
Also, I notice in the whatever license it says "Software originally created by Justin Lloyd, October 1996-ish Mea culpa. Carsten is most definitely the original author. I merely added new features and created a few new tools that worked in conjunction with the original code. |
Thanks to everybody involved for clarifying this. Prominent Game Boy projects in 2018 still use RGBDS decades after its release partly because it was released with relatively free terms at its inception. Having the license even freer and more explicit now makes me hopeful this will continue in the future. @AntonioND, my bias in favor of MIT is that it allows the code to be reused in existing open source projects that are not necessarily GPL‐compatible. If mgba (for example) were to integrate an assembler for its Game Boy debugger without calling a shell, it wouldn’t be able to use a GPL’d RGBDS without relicensing its existing (MPL) codebase. That’s kind of hypothetical, but I think RGBDS is a prime example of software that demonstrates it can be used in unforeseen places years after the fact, and I’d like a license that maximizes that possibility. |
Thanks for leaving your thoughts, @JustinLloyd! I understand that all of this happened 20 years ago so it's quite hard to do anything related to it now. However, that only means that it would be even harder in the future. @bentley Sure, I don't really think that GPL or MIT would make a big difference for this particular project anyway. I'll create a pull request changing the headers of all files related to rgbasm and rgblink to show the MIT license. Well, the SPDX identifier https://spdx.org/licenses/MIT.html That is, as long as @stag019 agrees to relicense rgbgfx under the MIT license. You, @bentley, have already said that you don't mind relicensing rgbfix, so rgbgfx is the last big thing left. It would just be easier if everything used the same license, and ISC is basically the same thing as MIT, so I don't think that there should be any reason to oppose to it. If he agrees, the only thing left to do is to replace the external contributions to get implementations under the MIT license, which shouldn't be too hard. But this is secondary, at least rgbgfx and the external files have a license. Regarding the copyright notices, I guess that we can keep the authors' names in the copyright files that already have them and just add a generic notice to all the rest that just says "Copyright RGBDS contributors" and add a CONTRIBUTORS.rst file. Or just specify the license in the files that have no copyright notice, that's what the Linux kernel does. PS: Also, @stag019, the |
With permission from the main authors, all code licensed under the terms of conflicting and unclear licenses have been relicensed under the MIT license: #128 SPDX license identifiers are used so that the license headers in source code files aren't too large. Add CONTRIBUTORS.rst file. Signed-off-by: Antonio Niño Díaz <[email protected]>
I've created a pull request that relicenses everything (except for rgbgfx and a few files) to MIT: #225 If someone wants to suggest some changes, please do. |
With permission from the main authors, all code licensed under the terms of conflicting and unclear licenses have been relicensed under the MIT license: #128 SPDX license identifiers are used so that the license headers in source code files aren't too large. Add CONTRIBUTORS.rst file. Signed-off-by: Antonio Niño Díaz <[email protected]>
With permission from the main authors, all code licensed under the terms of conflicting and unclear licenses have been relicensed under the MIT license: #128 SPDX license identifiers are used so that the license headers in source code files aren't too large. Add CONTRIBUTORS.rst file. Signed-off-by: Antonio Niño Díaz <[email protected]>
With permission from the main authors, all code licensed under the terms of conflicting and unclear licenses have been relicensed under the MIT license: #128 SPDX license identifiers are used so that the license headers in source code files aren't too large. Add CONTRIBUTORS.rst file. Signed-off-by: Antonio Niño Díaz <[email protected]>
@JustinLloyd, It's not like I'm holding a grudge. If I did, I would have said something. I seem to recall that I handed over the reigns to you, we really should have decided on a license at that point. That I didn't think of this or select a particular license is completely my fault. @bentley makes an interesting case for MIT. I've been thinking about this (and rebasing onto the current ASMotor) a lot these past days. It's certainly true that a freer license helps the code live on as it's useful in more contexts. And I absolutely love that something I started so long ago is still in use. For consumers of the code, keeping any changes closed or diverging from upstream too much is not desirable, as rebasing gets more and more difficult. And their users would get annoyed when updates are delayed, so maybe that's not an actual concern. As for rebasing onto my ASMotor project. I wish something could happen. I'm definitely more open to relicensing ASMotor under MIT than I was a couple of days ago. The two projects have many similarities and would benefit from pooling efforts. I'm just not sure it's feasible. I'm not even up to speed on what has happened with RGBDS since 2000, if RGBDS improvements fit ASMotor, or if my changes to ASMotor fit RGBDS (source compatibility was never a requirement - desirable but not required). I desperately need to document ASMotor in general and specifically how it diverges from the original RGBDS. |
With permission from the main authors, all code licensed under the terms of conflicting and unclear licenses have been relicensed under the MIT license: #128 SPDX license identifiers are used so that the license headers in source code files aren't too large. Add CONTRIBUTORS.rst file. Signed-off-by: Antonio Niño Díaz <[email protected]>
@AntonioND Have you tried e-mailing @stag019? He doesn't seem active on GitHub, but his e-mail address is readily available in the git commits of his repos. |
@tobiasvl I emailed him yesterday, yes. I'm going to merge the current pull request even if he doesn't answer, his code can be relicensed later without too much effort. |
Github emailed me as soon as you tagged me. Your personal email ended up in spam though. You can relicense my code under MIT, that's fine. |
Well, at least you have received the message, that's good enough. Thanks for answering! I'll update the PR. |
With permission from the main authors [1], most of the code has been relicensed under the MIT license. SPDX license identifiers are used so that the license headers in source code files aren't too large. Add CONTRIBUTORS.rst file. [1] #128 Signed-off-by: Antonio Niño Díaz <[email protected]>
I've merged the PR. There are 3 files left that aren't licensed under the MIT license, but that should be easy to fix. |
I've removed the dependencies of external files from OpenBSD, which means that now all of the code of the repository is licensed under the MIT license. For now, I'm going to close the issue. If anyone has any comment, you can do it here (and reopen the issue if needed, or even create a pull request). |
In particular, add the MPL 2.0 license. This deviates from RGBDS' current license (Expat / "MIT"), knowingly so. RGBDS has had a troubled history regarding licensing (see gbdev/rgbds#128), but ultimately, it was cleanly(?) licensed under the Expat/"MIT" license. However, it seems correct to license "rsgbds" under a *different* license, as it is entirely (at this point) my [@ISSOtm's] code. It borrows quite heavily from the original structure of RGBDS, but most of that has become my own and @Rangi42's code in the past few years. (For example, we can claim with certainty the entirety of RGBLINK, RGBFIX, and RGBGFX as our own, likewise the entirety of RGBASM's lexer.) Rangi has OK'd this license change as well. The choice of the MPL 2.0 boils down to being in favour of copyleft, but also understanding that a GPL3'd RGBDS would be a big barrier to its adoption: an assembly toolchain is a prime candidate for integrating into compiler toolchains (and we are, in fact, aiming for that); then those toolchains are likely to be embedded further. I like what the GPL strives to do, but many people take issue at its virality, and we can do without that barrier to entry.
Right now there are quite a few components of the codebase that have different licenses. Instead of having this it would be nice to contact the authors of each module and ask if they could relicense it. If not, that module could just be removed and rewritten. Ideally, we could have everything under something like the MIT or Apache license.
Of course, this only makes sense if the original code of rgbasm and rgblink can be relicensed, if not this is pretty useless. Not sure about how the WTF license really works in real life or how it interacts with other licenses.
The text was updated successfully, but these errors were encountered: