tdlib / td

Cross-platform library for building Telegram clients
https://core.telegram.org/tdlib
Boost Software License 1.0
7.07k stars 1.44k forks source link

Licensing when porting to a different language #36

Closed JuanPotato closed 6 years ago

JuanPotato commented 6 years ago

Hi, I want to port this library to Rust. As far as I can tell, the Boost license you are using requires any derivative works (my port) to also be under the Boost license. I thought I might come and ask if you would allow me to re-license the port under MPL v2.0

isopen commented 6 years ago

I join the question. Is it possible to change the license type or clone your license necessarily?

arseny30 commented 6 years ago

If you are are using tdlib as a library, then you can publish your work under any license you want. Or not publish at all.

If you are going to make changes in our code, then you probably have to keep the license. But why is that a problem?

isopen commented 6 years ago

It's not a problem. You have an excellent license! Thank.

JuanPotato commented 6 years ago

It's more of a personal preference. MPL 2.0 is a pretty nice license, it let's you use the library in whatever project, and you only have to release changes you've made to the library (not the entire project). So it's a nice way to get back contributions without being a hindrance for who can use the library

levlam commented 6 years ago

Boost license is one of the most permissive licenses and is one of the best licenses a library can have. Where have you found any restriction imposed on derivative works?

JuanPotato commented 6 years ago

This issue isn't because I've found some, but because I would prefer it and I figured I'd give it a shot to get permission. But it's fine too if you don't

JuanPotato commented 6 years ago

Ok, beyond this, since I intend to try to port this project to Rust, where to you suggest I start? This is a big project

levlam commented 6 years ago

There is no need to port the whole project to Rust, you can use the library from a Rust app easily. If you don't mind to use JSON objects for interaction with the library than you only need to make Rust bindings to C functions from td_json_client.h and td_log.h. You can look for an example of such binding in our Python example. In Rust the binding can be created even simpler: https://doc.rust-lang.org/beta/nomicon/ffi.html.

JuanPotato commented 6 years ago

Yeah I know that, it's not about whether I should or shouldn't port the thing. I just want to.

On Tue, Feb 6, 2018, 12:00 AM Aliaksei Levin notifications@github.com wrote:

There is no need to port the whole project to Rust, you can use the library from a Rust app easily. If you don't mind to use JSON objects for interaction with the library than you only need to make Rust bindings to C functions from td_json_client.h and td_log.h. You can look for an example of such binding in our Python example. In Rust the binding can be created even simpler: https://doc.rust-lang.org/beta/nomicon/ffi.html.

— You are receiving this because you modified the open/close state.

Reply to this email directly, view it on GitHub https://github.com/tdlib/td/issues/36#issuecomment-363311437, or mute the thread https://github.com/notifications/unsubscribe-auth/AJFxhN7S-5IZGP6Q98BfOINmAJE4aJ91ks5tR9xVgaJpZM4R44Mm .