oduwsdl / ipwb

InterPlanetary Wayback: A distributed and persistent archive replay system using IPFS
MIT License
607 stars 39 forks source link

Licensing issue of ipwb's MIT w/ imported GPL libs #382

Open machawk1 opened 6 years ago

machawk1 commented 6 years ago

Stemming from the discussion in https://github.com/datatogether/roadmap/issues/79, ipwb is MIT but uses some https://github.com/webrecorder/pywb modules, the latter being GPLv3.

There have been numerous discussions in this repo of decoupling ipwb from pywb, so that horse need not be beaten any further, but is there any issue of an MIT package using a GPLv3 package?

/cc @ibnesayeed

ibnesayeed commented 6 years ago

Yes, as per my understanding there is an issue in the way it is being distributed right now. Using a GPL component enforces the whole thing to be released under a GPL-compatible license. This has happened because we started this project in a very rushed time of the hackathon where we wanted to get something working in the least amount of time without paying too much attention to other aspects. However, this issue can easily be resolved by utilizing warcio which is released under MIT-compatible Apache 2.0 license.

machawk1 commented 6 years ago

However, this issue can easily be resolved by utilizing warcio which is released under MIT-compatible Apache 2.0 license.

That would solve the issue for the WARC-related functions we use from pywb but there is other reuse, e.g., https://github.com/oduwsdl/ipwb/blob/68e8e1d5ea59585d5a8ee599e86834bdba3687c2/ipwb/replay.py#L24-L25

Since it's "easily be resolved", can I assume that you are going to "easily resolve it"? ;)

380 is an outstanding related issue.

ibnesayeed commented 6 years ago

I can see that the binary search function need to be implemented as well, but that would be a bitesize task that could be a good way to engage some new WS-DL members in this project.

The SURT implementation exists outside IPWB, but unfortunately that is under an AGPL-3.0 license. Our best bet would be implement a simple SURT library and release it under MIT. That could be another good task for newcomers while we can elaborate on how it can be done.

Since it's "easily be resolved", can I assume that you are going to "easily resolve it"? ;)

AfterABD ;-)

machawk1 commented 6 years ago

For the most part, we have moved to using the Apache 2.0-licenses warcio instead of importing parts of the pywb module. An outstanding issue that prevents this ticket from being closed is that we have copied pywb's unsurt function for use in ipwb directly without needing pywb as an explicit dependency. While credit is maintained, this seems like an approach that exacerbates the license incompatibility issues between ipwb (MIT) and pywb (GPLv3).

ibnesayeed commented 6 years ago

Even the surt library is AGPL that we are still using.

machawk1 commented 6 years ago

Ok, then the problem is worse than originally reported.