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

License #9

Closed
gnzlbg opened this issue Aug 27, 2019 · 12 comments · Fixed by #10
Closed

License #9

gnzlbg opened this issue Aug 27, 2019 · 12 comments · Fixed by #10

Comments

@gnzlbg
Copy link

gnzlbg commented Aug 27, 2019

Is there a reason this isn't dual-licensed with Apache 2.0 OR MIT ?

@gnzlbg
Copy link
Author

gnzlbg commented Aug 27, 2019

I think that isn't 100% necessary, but since this crate is pulled by libstd, it would simplify things if it would support the same licenses as the Rust runtime.

@mati865
Copy link

mati865 commented Aug 27, 2019

cc rust-lang/rust#63676 which is integrating this crate into libstd.

@sunfishcode
Copy link
Member

@gnzlbg No deep reason. I'm fine changing it. Would (Apache-2.0 WITH LLVM-exception) OR MIT be acceptable? It's strictly more permissive than Apache-2.0 OR MIT.

@newpavlov Do you agree to relicensing? If so, please comment with:

I license past and future contributions under the dual (Apache-2.0 WITH LLVM-exception) OR MIT licenses, allowing licensees to chose either at their option.

@newpavlov
Copy link
Contributor

newpavlov commented Aug 27, 2019

I license past and future contributions under the dual (Apache-2.0 WITH LLVM-exception) OR MIT licenses, allowing licensees to chose either at their option.

But do we really need the LLVM-exception? Shouldn't MIT license already be compatible with LLVM?

@gnzlbg
Copy link
Author

gnzlbg commented Aug 27, 2019

Would (Apache-2.0 WITH LLVM-exception) OR MIT be acceptable?

Maybe @brson knows?

I'm not a lawyer, so I really have no idea. Triple-licensing it as "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" would probably work though.

@sunfishcode
Copy link
Member

I'm also not a lawyer and can't say whether triple licensing is really necessary here, but I also don't see any problem with it.

@newpavlov Would you mind making another post, for completeness:

I license past and future contributions under the (Apache-2.0 WITH LLVM-exception) OR Apache-2.0 OR MIT licenses, allowing licensees to chose any of these at their option.

@newpavlov
Copy link
Contributor

I license past and future contributions under the (Apache-2.0 WITH LLVM-exception) OR Apache-2.0 OR MIT licenses, allowing licensees to chose any of these at their option.

@brson
Copy link

brson commented Aug 30, 2019

FWIW I think Apache-2.0+LLVM exception or MIT is fine for this purpose. With the LLVM exception it's better-licensed than everything else in the runtime.

Adding the MIT license (as has been done) is required for compatibility with GPL 2.0 (this is why Rust is dual licensed). So everything in the Rust runtime must have a non-Apache, BSD/MIT-like license attached to it, with Apache as a bonus.

Personally I lean toward Apache-2.0/BSL-1.0/MIT trilecense over the LLVM exception, but there's definitely something to be said for just copying the LLVM license, since they have lawyers vetting it.

@brson
Copy link

brson commented Aug 30, 2019

Oh, I see that it's now trilicensed Apache-2.0/Apache-2.0+LLVM/MIT. I think that isn't necessary, Apache-2.0+LLVM/MIT would be fine, but the triliscense doesn't hurt, can trivially be trimmed to a dual-license later, and might have slight advantages, e.g. tooling might understand Apache-2.0 but not the LLVM exception.

@brson
Copy link

brson commented Aug 30, 2019

Oh actually, there might be a reason to prefer BSL-1.0 over Apache+LLVM - the GPL 2 compatibility. Now, I don't remember why Apache 2.0 is not GPL 2.0 compatible, so caveat, but the Apache+LLVM/MIT license presumably implies that "you are allowed to use the runtime exception, unless you are linking to GPL 2 code". Though perhaps the LLVM exception fixes the GPL 2 problem, or it has since been determined that Apache 2 and GPL 2 are compatible.

@tschneidereit
Copy link
Member

Though perhaps the LLVM exception fixes the GPL 2 problem, or it has since been determined that Apache 2 and GPL 2 are compatible.

The LLVM exception is specifically meant to make Apache 2 GPL 2-compatible. The legal departments of at least two large vendors we talked to see this as valid and thus see just APL 2+LLVM as GPL 2-compatible.

@tschneidereit
Copy link
Member

Ah, I now see that @sunfishcode made much better points regarding this over here.

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

Successfully merging a pull request may close this issue.

6 participants