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
License issue #113
Comments
The GPLv2 code is included separately from the CC BY-NC 4.0 material. Please keep that in mind. There is code in the project that is of a public license, code that isn't. I made sure to give you credit as well because I appreciate your contributions, but do note that not all code included is of the same license. |
For that code, I did not change the license intentionally for this very reason. (see here) Changing licenses for publicly licensed projects is not something that I am allowed to do, but licensing my own code is. On a sidenote, my libTesla fork also utilizes its original license, not CC-BY-NC-4.0, for the same exact reason despite my numerous modifications and optimizations. (see here) I'll leave this issue open for a few more days if you have any additional comments, questions or concerns. |
Hey, |
Behemoth is absolutely correct here. libtesla is under GPLv2 and you're statically linking that into your binary which requires the entire code that interfaces with it to be under GPLv2 as well. |
I see you point now. So I believe that now I may need to make it explicit in code that is not being statically linked or using methods directly from either libraries under my license (assets), and which code is not and must fall under GPLv2. I appreciate the clarification, it was indeed something I overlooked. Also, I really appreciate your work. libTesla was a lot of fun to play with last year, as well as everything else you've made.
|
I will make sure it is explicit that the license for the binary is GPLv2, but i will preserve my own license on my code not directly statically linked to yours or WerWolv's. I do not intend on redistributing binaries that do not fall under GPLv2, but my front page "license" may indeed be misleading since some derivative materials are being used. Again, the point of me using additional licenses was not to overwrite GPLv2 or its existing protections. |
All the code in this repository statically links to GPLv2 code. |
Not all code is statically linked / directly utilizing methods from the GPLv2 code. Lots of code are custom functions i wrote myself that can be 100% separated from any of yours or WerWolv's code (and don't rely on any methods from either). The boundary is drawn within the code itself. Anywhere GPLv2 code is imported for instance needs to be GPLv2 (hence what it means to be statically linked). Have you reviewed all of my code for yourself to make that judgement? Think of it like this. Even 100% without any of your's or WerWolv's code, my program will still function when being ran on the command line and could still "potentially" be used on any computer. It is not limited to Switch Homebrew.
|
This is not how the GPL works. You're using libtesla (which is under GPLv2) in various files to fulfill the Overlay's purpose. Any code that interfaces with GPL code is required to be under the same GPL license as well. And that condition propagates through your entire program. Every function that will ultimately call any function in libtesla needs to be under the GPL license which is every single one of them in one way or another (not that you generally put a license on individual functions).
Without libtesla, your overlay in the current state wouldn't be able to run at all. If you reimplemented libtesla from scratch though, you could obviously put it under any license you want. But you chose to link to libtesla which in turn requires you to follow its license. You can read about this specifically in subsection 2b of the GPLv2 license:
|
That is incorrect. my download functions, hex functions, ini functions.. many of them can be ran on my mac with no need for an overlay or a nintendo switch. However the distributed binary will still follow GPLv2 (which is what I stated previously). I still need to make those modifications to reflect our conversation. Just have not had the time to yet.
The key here is derivative work. Not all of my work is a direct derivative of any of your code. But the end result, the final product would still be GPLv2 due to the nature of the GPLv2 code. |
Of course some of your individual functions would run fine without libtesla. But they're still part of the whole executable. |
"..each and every file that interfaces with libtesla or contains any Atmosphere code or code from Behemoth's libraries.." That is correct. However like I have stated, some (not all) of your guys' code interfaces with my code, not the other way around. I could pull out functions and seperate them into my own custom library if that makes things easier. Again, the end result would still follow GPLv2 and be distributed under GPLv2. Currently, I make no claims that the binaries being distributed are not under GPLv2. By this claim, I am not breaking license agreements. However, i do need to make it more explicit on the project itself. |
From what I can see the main offenders currently are: The small helper files can be under any license you want, provided it is compatible with the GPLv2 license. But the vast majority of your project needs to be under GPLv2. |
yes, there are indeed sections within main and utils that need to be modified and made clear they are under GPLv2. I do agree. as for helper functions, yes I can choose my own license. I will make these changes very soon to remove further confusion. |
Thank you. |
again, both of you. I really appreciate everything you guys have done. 🙏🏼. And I am sorry that my misguided use of licenses caused this issue. It will be resolved. |
One other issue that I just realized arrises is the distribution of CC-by-NC-4.0 material directly within GPLv2 since in general these licenses can conflict (non-commercial / commercial). I may have to compile each separately, or change CC-by-NC-4.0 in some way. This is what I will try to resolve next, but it does indeed cause some room for confusion. If it comes down to me not being able to distribute my library within a GPLv2 project, there will need to be some changes made on my end with my choice of license. |
Update: I believe all issues are now addressed. I came to a realization that I can dual license the project if both licenses are compatible with each other, subjecting it to the terms of both license agreements. My project will now follow both GPLv2 and CC-BY-SA-4.0 (which is backwards compatible). Distribution with a dual license is allowed so long as the terms and conditions of each license agreement are met. Feel free to double check the modifications, otherwise I will be closing this issue in a couple days. Thanks again for the corrections from both of you. |
Please check what static compilation means and how the switch build chain works. |
Update: Give me a little more time to review my last described logic. I think that I may have made a mistake and may have to make more changes to how I incorporate the cc-by material. There is a possibility that the entire project is still having licensing issues with respect to GPLv2. I will be making more changes soon. My prior idea of merging the project to follow both licenses only works if I am the sole creator of the GPLv2 material (which I am not). I believe now that I will have to remove the |
Alright, all GPLv2 derivative work (including distributions) now fall solely under GPLv2, but some of the non-derivative work will fall under the CC-BY-4.0 license. CC-BY-4.0 is compatible with GPLv2 distributions as long as its terms are met within the derivative work (here being the GPLv2 code, which is a derivative of my own licensed software). In each of my code's headers, it now clearly states which license the software falls under. Derivative GPLv2 work (like I hope that this approach makes a bit more sense moving forward. Let me know your thoughts this time around (and thank you for your patience). If no additional comments, I will be closing this issue within the next 2 days. If you do have more concerns after, feel free to raise the issue again and I will try to address them. |
Thanks again both of you. I appreciate the feedback on getting my project GPLv2 compliant. Hopefully everything is resolved now, but feel free to add more comments or re-raise the issue in the future if there is anything else of concern. |
I just saw that this project lifted big parts of it's reboot logic from hekate, atmosphere and studious pancake which are all GPLv2 licensed. The license you chose for this project isn't compatible with the GPL Software License. See https://www.gnu.org/licenses/license-list.en.html#ccbysa
The text was updated successfully, but these errors were encountered: