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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible license #23

Closed
ssddanbrown opened this issue Feb 11, 2023 · 8 comments
Closed

Incompatible license #23

ssddanbrown opened this issue Feb 11, 2023 · 8 comments
Labels
documentation Improvements or additions to documentation

Comments

@ssddanbrown
Copy link

馃憢 Just came across this project from a Reddit post. To make it clear, I am not a lawyer, just someone that often looks at license in open source.

Noticed that this is a fork of https://github.com/RobinLinus/snapdrop, but this project is licensed via an MIT license whereas RobinLinus/snapdrop is licensed via a GPL3 license.
You can't just change the license in this way, not without getting permission to do so from past contributors (or the copyright holders if ownership has been reassigned).

If you do not have such permission, your forked work would need to provide the same freedoms and requirements as provided in the GPLv3 license, For simplicity most people would keep the license the same.

@schlagmichdoch
Copy link
Owner

Hey, thanks for explaining! Any change to the licence was unintended. I have just rolled back the changes with 70874ee
Just out of curiosity, are there any major differences between the GPL3 and MIT licences?

This probably happened when I merged the Node-only implementation (https://github.com/Bellisario/node-snapdrop/) into this fork.
@Bellisario FYI

@ssddanbrown
Copy link
Author

I have just rolled back the changes with 70874ee

Awesome! Just be sure to always keep attribution to the work done/pulled-in from other projects.

Just out of curiosity, are there any major differences between the GPL3 and MIT licences?

Yeah, They are quite significantly different licenses when it comes to the open source world. Mainly that the MIT is very permissive (Doesn't really care so much about what's done with the code) whereas the GPL3 has requirements in terms of how the sources are distributed with the application and how any modified/combined works need to be licensed. People like the as it's MIT is short, simple and permissive. People like the GPL3 since it adds extra assurance to keep the code open.

The top part of these pages provides a very condensed description of the licenses: GPL3, MIT.

The project by @Bellisario looks (From a quick unknowledgeable glance at the project) like an original re-implementation that does not use code from the original project, so could likely be licensed differently. If you've also merged in that project, you'd ideally also abide by the MIT license there by providing attribution to the Bellisario/node-snapdrop, ideally mentioning the copyright notice and license used in that works. A GPL3 project generally can include works from an MIT project, so an overall GPL3 license for your project would be fine.

@Bellisario
Copy link
Contributor

Hey, thanks for explaining! Any change to the licence was unintended. I have just rolled back the changes with 70874ee Just out of curiosity, are there any major differences between the GPL3 and MIT licences?

This probably happened when I merged the Node-only implementation (https://github.com/Bellisario/node-snapdrop/) into this fork. @Bellisario FYI

Thanks!

Yes, I'm using the MIT license. I didn't actually noticed the first time I should use that license, but when noticed decided to keep the MIT License because I didn't use the whole Snapdrop, but took its client part and WebSocket server readapting them to fit with one endpoint: the official implementation seems to use NGNIX for static content serve and Node.js server for WebSocket connection handling. I removed all NGINIX, made my own server implementation (re-adapted from the original) and modified the client to connect the same server as static content serve.

Not sure if I have to match Snapdrop license because this can be seen both as a "modified" version, either a "totally" different server implementation (to fit on Node.js).

What do you think?

@schlagmichdoch
Copy link
Owner

schlagmichdoch commented Feb 12, 2023

@ssddanbrown Thanks for the explanation. I try to keep a complete list of all attributes in the README.

@Bellisario
I don't know about licences but my gut feeling says eventhough many parts of your version are created by you and "totally" different, the core feature is still the same and most code is similar to Snapdrop. I would therefore think your version should use GPL3 too. But I would rather wait for @ssddanbrown s opinion on the topic as he seems to know stuff

As PairDrop includes Node-Snapdrops changes to Snapdrop, I would think PairDrop needs to have the same licence as Node-Snapdrop but I'm unsure. I will stick with the GPL3 licence for now.

@schlagmichdoch schlagmichdoch added the documentation Improvements or additions to documentation label Feb 12, 2023
@ssddanbrown
Copy link
Author

I would therefore think your version should use GPL3 too.

If node-snapdrop contains any code from the original snapdrop project, it should probably be GPLv3 as well. If it's all original code, it can have its own license. It does get into a grey area if you've referenced or copied the format of the GPLv3 code while building node-snapdrop, or if you've re-implemented APIs. I can't advise much when it gets that deep.

As PairDrop includes Node-Snapdrops changes to Snapdrop, I would think PairDrop needs to have the same licence as Node-Snapdrop but I'm unsure.

This is not needed. The MIT license, as used be node-snapdrop, does not have any requirements that you provide the same rights/freedoms when included in combined/greater works, like the GPLv3 does. So you don't need to apply the MIT license to your project just because you've used MIT-licensed code, you just need to respect it's terms (The attribution and reference to that code's copyright and original license as mentioned previously).

@schlagmichdoch
Copy link
Owner

Thanks a lot for the concise information!

I'll close this issue as the licence switcheroo is resolved. If someone belives node-snapdrop should get another licence, I guess the discussion should be continued over there.

@Bellisario
Copy link
Contributor

Thanks @ssddanbrown and @schlagmichdoch, just changed my license to GPL3!

@alensiljak
Copy link

A summarized and understandable descriptions of licenses may be found at
https://fossa.com/developers-guide-open-source-software-licenses

In summary, you can't switch code license from GPL to MIT because GPL requires the modified work to be provided under the same conditions.
So, if any code is used from another project, no matter how modified, it is still under the original license.
Please see the site above, especially since you are involved in Open Source development.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

4 participants