-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
check for all-features with cargo-deny #10544
Conversation
On board with the updates, and the all-features. I'd prefer to avoid the MPL license here. It's LGPL-like IIRC. While I would be fine to use that in my commercial work, others might not be. |
@alice-i-cecile the MPL-2.0 license is only copyleft if you modify the source files, is not like LGPL, so it should be fine if bevy only uses the crates and not modifies them. from https://www.mozilla.org/en-US/MPL/2.0/FAQ/ Q11: How 'viral' is the MPL? If I use MPL-licensed code in my proprietary application, will I have to give all the source code away?
|
I agree with your analysis, but I'd like to keep this uncontroversial :) Was there a reason to add this in the current PR? |
Bevy uses Rodio, and Rodio uses Symphonia which is MPL-2.0 licensed. If bevy wants to avoid the MPL-2.0 license. It will need to stop using rodio. Symphonia is used through these flags in bevy_audio: symphonia-aac = ["rodio/symphonia-aac"] |
The MPL-2.0 license is needed to fix #9880
|
Not necessarily. symphonia is an optional dependency of rodio, which is why it's only caught in this PR. IMO rather than allowing MPL-2.0 generally we should add and exception for |
yeah that could be a solution, but isn't this too verbose: exceptions = [
{ name = "unicode-ident", allow = [
"Unicode-DFS-2016",
] },
{ name = "symphonia", allow = [
"MPL-2.0",
] },
{ name = "symphonia-bundle-flac", allow = [
"MPL-2.0",
] },
{ name = "symphonia-bundle-mp3", allow = [
"MPL-2.0",
] },
{ name = "symphonia-codec-aac", allow = [
"MPL-2.0",
] },
{ name = "symphonia-codec-adpcm", allow = [
"MPL-2.0",
] },
{ name = "symphonia-codec-pcm", allow = [
"MPL-2.0",
] },
{ name = "symphonia-codec-vorbis", allow = [
"MPL-2.0",
] },
{ name = "symphonia-core", allow = [
"MPL-2.0",
] },
{ name = "symphonia-format-isomp4", allow = [
"MPL-2.0",
] },
{ name = "symphonia-format-wav", allow = [
"MPL-2.0",
] },
{ name = "symphonia-utils-xiph", allow = [
"MPL-2.0",
] },
{ name = "symphonia-metadata", allow = [
"MPL-2.0",
] },
] I don't really see a problem why don't allow MPL-2.0 crates. |
The potential problem is Console Support. So to be careful, it should be a case by case exception for dependencies that use MPL (When possible confirmed by a Dev with Console access). |
@MinerSebas you are right, I didn't think about that. It could be a problem if we added a crate too intertwined with bevy. |
# Objective Fix bevyengine#9880 ## Solution - Add all-features flag - Allow "MPL-2.0" license for the [Symphonia](https://github.com/pdeljanov/Symphonia) crates - Update dependencies unmaintained or with vulnerabilities: RustAudio/rodio#517 , LiquidityC/slice_ring_buffer#7
Objective
Fix #9880
Solution