Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
weinre is currently distributed as two binary wads - a .jar file and a Mac .app file (which includes the .jar file and other pieces of goo). The wads are built from a combination of weinre code which will eventually be housed at Apache, as well as various dependencies which are currently retrieved from other repositories as part of the build process.
Those pre-reqs are:
- Files from modjewel. CommonJS runtime for the browser. License: MIT
- Files from Apache Commons CLI. Command-line parser. License: ASLv2
- Files from Apache Wink. JSON codecs. License: ASLv2
- Files from WebKit. Web Inspector code. Although WebKit in general contains both BSD and LGPL code, only BSD licensed code is used by weinre.
- Files from Eclipse Jetty. HTTP server. License: ASLv2 and EPLv1
- Files from Eclipse SWT. Platform UI toolkit. License: EPLv1
As we look at being able to make weinre downloads available at Apache, we need to follow the guidelines associated with shipping 3rd party code. There's a handy FAQ on this, here:
http://apache.org/legal/resolved.html#category-a
Some notes then, on the subject pre-reqs:
- Files from modjewel. This is actually my code; I'll pull it into weinre directly and relicense as ASL. I pulled one request from another developer into modjewel, but this was for an npm package.json, which I will be removing as that's no longer applicable. It may be that by the time I'm ready to pull this code in, we may have a different module library available for cordova proper, which I would likely reuse (no matter what it is). So, no problem with this.
- Files from Apache Commons CLI. Command-line parser. License: ASLv2. Shouldn't be a problem.
- Files from Apache Wink. JSON codecs. License: ASLv2. Shouldn't be a problem.
- Files from WebKit. Web Inspector code. Although WebKit in general contains both BSD and LGPL code, only BSD licensed code is used by weinre. I looked through all of the WebKit files that I package into the distribution, and they're all BSD 2 clause or 3 clause variants with no advertising clause. So that looks good. Unfortunately, this will need to be checked whenever we decide to pull new versions of the Web Inspector code. There is currently a code-scan to check for GPL licenses, which should be expanded to search for the BSD advertising clause as well. But we'll really need to eyeball the individual files anyway whenever we pull a new version. Sigh.
- Files from Eclipse Jetty. HTTP server. License: ASLv2 and EPLv1. Not sure how much of a problem this, since some version of Jetty is licensed ASLv2. The issue with Jetty would be moot if we decide to port the server to node.js. Note the idea would be to make node.js a runtime pre-req, just like java vm's are for other Apache java projects, so we wouldn't actually be shipping node.js. Have a bit of time to noodle over what to do here.
- Files from Eclipse SWT. Platform UI toolkit. License: EPLv1. I think this is a huge problem. EPL is not a license we can reship with. EDL is, but as near as I can tell, the Eclipse SWT code is not EDL. To make matters worse, SWT tends to ship other licensed code itself; the Mac SWT code I currently ship contains MPL code, for instance. My current thought on this is to just stop building and shipping the "Mac app" version of weinre - we'd just ship the "jar file" version (or a node.js version). I'll leave all the existing code where it is - it's all mine and so can be licensed ASL, but just won't build or ship it. There's likely a happy ending to this issue though - Apache allows some non-Apache licensed code to be reshipped as binary only. Something to investigate later.