the8472 / mldht

Bittorrent Mainline DHT implementation in java
Mozilla Public License 2.0
149 stars 45 forks source link

Intent to relicense under MPL 2.0 #5

Closed the8472 closed 7 years ago

the8472 commented 7 years ago

But I need consent from the original maintainer or will have to investigate how many LoCs by him still remain.

CC @leonard84 I sent you an email. I'm poking you here in case it ended up in the spamfilter. A pull request from you with a text file in the docs dir with a confirmation statement would work too.

leonard84 commented 7 years ago

Hi @the8472 I don't have any objections in general, but why don't we license it under APL 2.0? May I ask what prompted this?

However, you'd need to check if there is a problem with KTorrent DHT, since the initial DHT Code was adapted from it see https://sourceforge.net/p/azsmrc/code/1527/

And how does it work with Vuze/Azureus code, AFAIK that is still GPL 2.0 and mldht uses its interfaces?

the8472 commented 7 years ago

why don't we license it under APL 2.0

Relaxing license restrictions to APL would be sufficient to enable inclusion as a library, but it seems overly broad, allowing others to take the source and close it.

MPL strikes a balance in that it is non-viral copyleft on a per-file basis. That should make it easy for other works, including closed ones, to include it while keeping the mldht source open. Personally I'd prefer something like an affero version of the LGPL, but that doesn't exist and a custom license would just cause headaches for others.

May I ask what prompted this?

Sure. I have been maintaining mldht for standalone use for quite a while now with the intent of also making it usable as a library. https://github.com/atomashpolskiy/bt is looking for a DHT library and I think mldht would be a good match but license incompatibility is the main obstacle.

However, you'd need to check if there is a problem with KTorrent DHT, since the initial DHT Code was adapted from it

That was a translation from C++ code, right?

And how does it work with Vuze/Azureus code, AFAIK that is still GPL 2.0 and mldht uses its interfaces?

I have removed the azureus integration from the library version. I have it locally in a separate project which can then depend on MPL and GPL code which are compatible via MPL section 1.12 “Secondary License”.

atomashpolskiy commented 7 years ago

Hi @the8472 , @leonard84 !

Just wanted to chime in and say that I've completed the initial integration with mldht (so far I'm using only the peer lookup). The thing works flawlessly. You may check it out in https://github.com/atomashpolskiy/bt/tree/dht-experimental branch if you wish.

On the side note, I've also made quite a few improvements to the core and so am very eager to release 1.1 version. Quite obviously I can't wait to include DHT support in it as well :) That said, I'm ready when you're ready.

leonard84 commented 7 years ago

That was a translation from C++ code, right?

Yes

the8472 commented 7 years ago

CC @GeorgeKT since he is the main contributor to KTorrent

In 2007 mldht was created by copying code from ktorrent and porting to java. The project has evolved since then but some lines remain.

I would now like to relicense under MPL2.

It would be easiest for me if you would give permission to do that. If you need to know which lines remain before deciding, that's currently difficult to obtain from the git history since some of the history was lost in a svn->git transition, but I think with some effort it could be restored or the files could be compared with other tools. If you're opposed then I would have to identify and rewrite those parts anyway.

And of course another question is whether you're the main or sole contributor of that code.

Link to the initial commit back then: https://sourceforge.net/p/azsmrc/code/1527/

atomashpolskiy commented 7 years ago

Hi guys! Is there any chance this project gets relisenced any time soon?

the8472 commented 7 years ago

I'll shoot george an email, if I don't hear back from him I'll go ahead with relicensing following mozilla's 95% yes, 5% no objection benchmark, reserving the possibility that some LoCs need to be rewritten if he objects later.

the8472 commented 7 years ago

Good news, he replied and gave a go-ahead. I'll update the file headers and create a release-tag.