-
Notifications
You must be signed in to change notification settings - Fork 534
Consider offering a dual license MIT and CC0 #434
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
Comments
@bfattori Thanks for raising this question, Brett. My initial reaction is: Is this really a problem? I say this because this code is in the JDK: https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.html and basically all of JSR166 is Public Domain: http://gee.cs.oswego.edu/dl/concurrency-interest/ Fundamentally, the TCK wouldn't be packaged with any application code, so it is a test-time dependency, so it wouldn't be a problem. I guess it could be an issue if you want to take the example code and paste verbatim? Do you have any pointers to material which I could read up on w.r.t. this topic? Thanks! |
@viktorklang I was unaware that reactive-streams is included in the JDK. You also say that it is a testing-time only component? If this is so, then it's not necessarily a problem. Thanks for the quick response. |
@bfattori The interfaces is in the JDK (as well), the TCK is a test-time component. What remains is the examples, and those are CC0. So I guess those would only pose a problem in your case if you included them in production code? (I am not a lawyer, doctor, etc) |
@viktorklang If we did start with the examples, that are licensed CC0, and modified them, then the code would need to remain CC0, in my understanding. That could pose a problem if the Public Domain is not easily recognized in another region. A dual license wouldn't change or hurt your examples in any way, but would offer those looking to avoid the legal inconsistencies of the Public Domain a "safer" path to derive from the examples. |
Also, I suppose a good way to see how "Public Domain" is defined around the world (and why it's complicated) is to view the many different regional sites on Wikipedia regarding the Public Domain: https://en.wikipedia.org/wiki/Public_domain |
Do you have a specific company in mind that has trouble with CC0 or is this a hypotetical scenario? This FAQ indicates CC0 is pretty reasonable and unless your company wants to reinvent it, it should not be of a problem (see this short comparison). Most users don't interact with Reactive Streams directly but through other libraries, licensed typically under Apache 2.0, where including CC0 is fine. (Fun fact, Doug Lea comes up too.) In summary, I don't consider this to be a problem and recommend not dual licensing Reactive Streams, which I've contributed to as well under the CC0 premise. |
I have a sector of companies that might consider this a problem: those that are regulated by government organizations, and not just by the U.S. government, in their field of endeavour. Because the Public Domain isn't a consistent legal framework, a company that is using the software must comply with the license terms as best they can. In a country where the Public Domain does not exist, and the fallback to a "free license" doesn't satisfy, that would limit the usability of the component. Just because it is commonly used with the Apache 2.0, does not change its terms though. The Apache component uses the CC0 component, with the two licenses being separate yet compatible in the U.S. reactive-streams does not become "relicensed" under the Apache 2.0 as it isn't a derivative work under their definition. If a company does work abroad, and they are regulated, there could be a potential problem with using the CC0 license. It hasn't been tested and just assuming it's okay won't fly when there is a multi-million dollar budget resting on its merits. I think dual licensing of just the examples might be enough to satisfy the need here. |
Disclaimer: I am not a lawyer, expert on IP legislation, etc. YMMV. @bfattori So given that the interfaces is in the JDK and under the JDK license, the TCK is a test-time dependency your remaining concern is if someone possibly derives code from the examples-jar? @reactive-streams/contributors Anyone have any thoughts here? |
I agree with Viktor that there is no issue here. The interfaces are available under OpenJDK license as well as the original CC0. (Not especially relevant, but similarly for the OpenJDK TCK that primarily tests SubmissionPublisher). |
I appreciate your considering this. It's a minefield of licensing issues when it comes to open source in the corporate world. Trying to be a responsible consumer, while protecting intellectual property from misappropriation is not an easy task. I don't expect every project that I approach to change their licensing, and some will need to be privately negotiated, but by doing so I'm also hoping that it makes developers aware of the difficulties imposed by the selection of certain licenses. I am not a lawyer, I am a developer by trade. However, I'm in the role of needing to be OSS intelligent and licensing is where I'm focusing. So, I completely understand the dichotomy that exists between being open/free/libre and wanting to expedite development while being able to protect IP. Thanks. |
Thanks @bfattori, I'll close this issue. |
Is there any way you could dual license your project as MIT and CC0? The MIT is a fair license and allows for the broadest usage. I propose this because for businesses, the idea of the Public Domain isn't a legal framework that applies globally. Larger organizations cannot consume components licensed in this way because they present unique problems around the globe.
Allowing for the dual licensing of the project as either MIT or CC0 would satisfy you projects goals of being open an unencumbered by those who wish to use it that way, but still legally acceptable to businesses.
The text was updated successfully, but these errors were encountered: