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

BSD or MIT #41

Closed
ignatenkobrain opened this issue Dec 14, 2019 · 8 comments · Fixed by #218
Closed

BSD or MIT #41

ignatenkobrain opened this issue Dec 14, 2019 · 8 comments · Fixed by #218

Comments

@ignatenkobrain
Copy link

Hello, Cargo.toml lists BSD OR MIT, however LICENSE file contains only info about BSD... Who is right?

@danielrh
Copy link
Collaborator

I suppose the license file is right... I can adjust the Cargo.toml
both licenses are sufficiently permissive that they are quite compatible.

@decathorpe
Copy link

Looks like this issue is still unresolved as of today?

@nyurik
Copy link
Contributor

nyurik commented Mar 19, 2024

Most Rust projects prefer to use Apache OR MIT approach because MIT is not very compatible with GPL (if my memory is serving me right), and so having two clause approach allows users to use code everywhere more freely.

@decathorpe
Copy link

Then the license text for MIT should probably be added to this repo too?

The current license file (https://github.com/dropbox/rust-brotli/blob/master/LICENSE) file only contains the BSD-3-Clause license text, but the MIT license requires that license text is included with redistributed sources.

Usually dual-licensed crates handle this by having two separate license files (i.e. LICENSE-Apache and LICENSE-MIT, in most cases).

MIT is not very compatible with GPL

As far as I know, the problem wrt/ GPL compatibility is actually caused by the Apache-2.0 license, not the MIT license.

@danielrh
Copy link
Collaborator

Hmmm should probably copy the license from https://github.com/google/brotli/blob/master/LICENSE

@musicinmybrain
Copy link
Contributor

It would be great to see something happen here. Since the MIT license requires including the copyright and permission notices (the license text) in copies or substantial portions, it’s not possible for people to actually use this software under MIT terms if there’s no original license text available. This makes the crate effectively BSD-3-Clause-only for those who care about license compliance, and it creates a pitfall and an annoyance for people like distribution packagers, who have to patch the license metadata in Cargo.toml to avoid misleading people.

@musicinmybrain
Copy link
Contributor

As a further wrinkle, similarly to dropbox/rust-brotli-decompressor#9 (comment), it turns out that one file is owned by Google and distributed only under MIT terms, so the crate isn’t even properly BSD-3-Clause; it would have to be BSD-3-Clause AND MIT, and the license text for that file needs to be present.

/* Copyright 2010 Google Inc. All Rights Reserved.
Distributed under MIT license.
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
*/

Please do something about this!

@musicinmybrain
Copy link
Contributor

It looks like entropy_encode.rs is based on https://github.com/google/brotli/blob/v1.1.0/c/enc/entropy_encode.c, so (despite the discrepancy in copyright statement between the header and the license file), https://github.com/google/brotli/blob/v1.1.0/LICENSE is probably the appropriate license text here.

musicinmybrain added a commit to musicinmybrain/rust-brotli that referenced this issue Sep 22, 2024
Since `entropy_encode.rs` appears to be derived from
https://github.com/google/brotli/blob/v1.1.0/c/enc/entropy_encode.c
(possibly at a different version), and carries only MIT terms, it’s not
possible for the crate to be `BSD-3-Clause OR MIT` overall. The new
`LICENSE.MIT` file is taken from
https://github.com/google/brotli/blob/v1.1.0/LICENSE since that appears
to be the correct license text for `entropy_encode.rs`.

Fixes dropbox#41.

Signed-off-by: Benjamin A. Beasley <[email protected]>
musicinmybrain added a commit to musicinmybrain/rust-brotli that referenced this issue Sep 22, 2024
Since `entropy_encode.rs` appears to be derived from
https://github.com/google/brotli/blob/v1.1.0/c/enc/entropy_encode.c
(possibly at a different version), and carries only MIT terms, it’s not
possible for the crate to be `BSD-3-Clause OR MIT` overall. The new
`LICENSE.MIT` file is taken from
https://github.com/google/brotli/raw/refs/tags/v1.1.0/LICENSE since that
appears to be the correct license text for `entropy_encode.rs`.

Fixes dropbox#41.

Signed-off-by: Benjamin A. Beasley <[email protected]>
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.

5 participants