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

Mention 0BSD and/or MIT-0 among permissible licenses? #239

Open
voxpelli opened this issue Mar 18, 2021 · 4 comments
Open

Mention 0BSD and/or MIT-0 among permissible licenses? #239

voxpelli opened this issue Mar 18, 2021 · 4 comments

Comments

@voxpelli
Copy link

voxpelli commented Mar 18, 2021

As MIT still require attribution, by preserving the license statement, it isn't the most permissible license possible, hence why 0BSD and MIT-0 licenses have arisen, for those who want to require absolutely nothing from the ones who use their code.

It would be nice if the guidelines mentioned that class of permissible licenses as well, so that people in the community can feel safe in using such licenses + actually be aware that eg. the MIT license do actually require attribution and if they don't want to impose that on someone then they should use eg. MIT-0.

I'm posting this after having had some discussions on Twitter yesterday with people from eg. Google, Twitter, AWS: https://twitter.com/voxpelli/status/1372211087093956610

I continued those discussions today with even more people, to ensure that 0BSD and MIT-0 licenses are recognized as usable and compatible opensource licenses, and got pointed here as a place where many look for references into what licenses to use in the Cargo/Rust community.

Both of the licenses are OSI approved:

@BurntSushi
Copy link
Member

The existing API guidelines don't really seem to have any particular goal of listing desirable permissive licenses. A few extremely popular ones are mentioned, but otherwise, I think the moniker of "use a permissive license" is enough.

@voxpelli
Copy link
Author

Besides the dual MIT/Apache-2.0 license, another common licensing approach used by Rust crate authors is to apply a single permissive license such as MIT or BSD. This license scheme is also entirely compatible with Rust's, because it imposes the minimal restrictions of Rust's MIT license.

As MIT and BSD (probably the 2-clause BSD that it refers to) are both essentially the same BSD-style license (together with eg. ISC) it could be implied that permissible means the same as BSD-style

Mentioning one of 0BSD and MIT-0 would indicate that it is possible to go further.

And on top of that it would be good to mention something about the public domain class of licenses, like CC-0 (which isn't OSI approved) and Unlicense, as those are a bit more complicated, as eg. mentioned in the Twitter discussion I linked to but also in eg. Google's description of what licenses projects they are using can be licensed under.

permissible could mean that eg. CC-0 is totally okay, but it might also not mean that, currently it is hard to know.

I do agree that it should not list an exhaustive list of desirable permissive licenses, but it would be good if it listed more than just BSD-style licenses + if it showed if eg. CC-0 or such is okay or if there are some of the very permissible licenses that can be problematic.

A good side effect would be to make people extra aware that BSD-style licenses actually require attribution, which is a good reminder for everyone.

@BurntSushi
Copy link
Member

but it would be good if it listed more than just BSD-style licenses

It does. The Apache-2.0 license is also mentioned and it is permissive. The guidelines say "permissive" license. They don't say "BSD-style" license. The total list of licenses includes at least one license that isn't BSD-style.

@voxpelli
Copy link
Author

voxpelli commented Mar 18, 2021

It also actively discourages the use of non-dual licensed Apache-2.0 as it is more restrictive than MIT or BSD, which again implies that it’s a BSD-style license that one should pick:

Crates that desire perfect license compatibility with Rust are not recommended to choose only the Apache license. The Apache license, though it is a permissive license, imposes restrictions beyond the MIT and BSD licenses that can discourage or prevent their use in some scenarios, so Apache-only software cannot be used in some situations where most of the Rust runtime stack can.

I’m not saying it’s wrong or bad or needs to be an exhaustive or anything like that, just that it could be helpful to elaborate a bit.

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

No branches or pull requests

2 participants