oconnor663 / blake2_simd

high-performance implementations of BLAKE2b/s/bp/sp in pure Rust with dynamic SIMD
MIT License
126 stars 22 forks source link

blake2b-simd license is incompatible with its dependency #19

Closed ArekPiekarz closed 4 years ago

ArekPiekarz commented 4 years ago

I've run cargo-about on my app, which has MIT/Apache 2.0 license, and got this error: [ERROR] Crate 'arrayref': Unable to satisfy [BSD-2-Clause], with the following accepted licenses [Apache-2.0, MIT]

I followed the dependency chain and arrived at this: dirs -> dirs-sys -> redox_users -> rust-argon2 -> blake2b_simd -> arrayref

And their licences are: MIT OR Apache 2.0 -> MIT OR Apache-2.0 -> MIT -> MIT/Apache-2.0 -> MIT -> BSD-2-Clause

According to cargo-about and this Stack Exchange answer, BSD-2 projects cannot be used inside MIT projects.

oconnor663 commented 4 years ago

Is this really a thing? MIT crates can't take dependencies on BSD crates? If so, this would seem to be a major ecosystem-splitting issue, and I'm surprised I haven't heard of it.

Dual-licensing this repo is certainly possible, but I'd like to get an official view on this, if there is one.

ArekPiekarz commented 4 years ago

It seems I misunderstood how cargo-about works and the answer on Stack Exchange was misleading. The former generates a file with "accepted licenses" based on the license of your project, but doesn't seem to have advanced knowledge about compatibility of licenses. The latter was talking about BSD-4 instead of BSD-2 and other posters pointed out the mistake.

Sorry for the confusion.

oconnor663 commented 4 years ago

No worries. Always happy to learn more about this stuff.