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

Make speech-dispatcher opt-in so we can avoid LGPL by default #21

Closed
wants to merge 1 commit into from

Conversation

emilk
Copy link

@emilk emilk commented Feb 4, 2022

speech-dispatcher uses the copy-left LGPL license, which means it cannot be used in any closed source projects. Since this is a default dependency (on linux), it means the whole tts crate becomes impossible to depend on for any crate that would like to not be copy-left.

This PR makes it an opt-in dependency. This means using tts on Linux will by default result in an error, until a user actively adds the speech-dispatcher to tts.

I know this isn't ideal, and if anyone has a better suggestion, I'm all ears.

I use tts as an opt-in dependency of https://crates.io/crates/egui-winit, and this can cause situations where others may not want to depend on my crate because of the copy-left issue.

The problem was discovered thanks to https://github.com/EmbarkStudios/cargo-deny

@ndarilek
Copy link
Owner

ndarilek commented Feb 4, 2022 via email

@ndarilek
Copy link
Owner

ndarilek commented Feb 4, 2022 via email

emilk added a commit to emilk/egui that referenced this pull request Feb 4, 2022
* Run cargo deny in CI
* Use patched fork of ureq to avoid copy-left license
* Use patched fork of tts to avoid LGPL license

More:
* ndarilek/tts-rs#21
* algesten/ureq#479
@emilk
Copy link
Author

emilk commented Feb 4, 2022

Thank you for responding, and for taking this seriously! A tri-license would be much appreciated.

LGPL is difficult to interpret (and I'm not a lawyer), but a common interpretation is that it is fine for non-LGPL code to dynamically link with a LGPL library so that the LGPL library can be updated independently of the application using it. Of course, cargo uses static linking. Again, I'm not a lawyer, but I would sleep better if there were no LGPL rust code in any of my dependencies!

https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License#Differences_from_the_GPL

@ndarilek
Copy link
Owner

ndarilek commented Feb 5, 2022 via email

emilk added a commit to emilk/egui that referenced this pull request Feb 5, 2022
@emilk
Copy link
Author

emilk commented Feb 5, 2022

Works great - thank you so much @ndarilek !

@emilk emilk closed this Feb 5, 2022
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 this pull request may close these issues.

2 participants