On Mon, Mar 5, 2012 at 3:09 PM, Mattmann, Chris A (388J) <[email protected]> wrote: > Hi Ryan, > > On Mar 5, 2012, at 2:57 PM, Ryan McKinley wrote: > >> On Mon, Mar 5, 2012 at 2:34 PM, Mattmann, Chris A (388J) >> <[email protected]> wrote: >>> Hey Ryan, >>> >>> On Mar 5, 2012, at 2:27 PM, Ryan McKinley wrote: >>> >>>>> >>>>> Unfortunately I do see it as a roadblock. The goal of SIS was to write >>>>> a pure ALv2 licensed (or compatible) spatial library and toolkit, which >>>>> in my mind does *not* include any dependencies (even optional) on >>>>> LGPL components. >>>>> >>>> >>>> Got it, this was my understanding. The goal of SIS is to build an ASL >>>> version of JTS -- that's a great goal, just not one I have any >>>> energy/time to contribute towards. >>> >>> No worries. I appreciate you reaching out. Is there a way to have everything >>> in spatial4j that doesn't rely on the LGPL code here? >>> >> >> possible, but it makes testing overly complicated. I want/need the >> JTS implementations to be 1st class test citizens. (This is actually >> the biggest reason this is not directly in the lucene) > > Gotcha. > >> >> >>>> >>>> >>>>> Is there any way that the works of spatial4j could be replaced by ALv2 >>>>> code? >>>> >>>> The code in spatial4j is all ASL. If there were a viable ASL polygon >>>> library, we could use that too. >>> >>> How can you have an ALv2 licensed library that has dependencies on LGPL >>> upstream >>> components? Doesn't the LGPL and its viral nature [1] spill into your code? >>> >> >> You may be confusing LGPL with GPL. >> >> "Applications which link to LGPL libraries need not be released under the >> LGPL" >> http://www.gnu.org/licenses/lgpl-java.html >> >> The key thing they want to make sure is that you don't bundle your own >> version of the .jar file (section 6) > > Well that's the FSF's interpretation, and *not* Apache's. See this: > > (search for LGPL) > > http://www.apache.org/legal/resolved.html > > Which licenses may NOT be included within Apache products? > > • Binary Code License (BCL) > • Special exceptions to the GNU GPL (e.g. GNU Classpath) > • GNU GPL 1, 2, 3 > • GNU LGPL 2, 2.1, 3 > • Affero GPL 3 > • NPL 1.0/NPL 1.1 > • QPL > • Sleepycat License > • Microsoft Limited Public License > > GNU LGPL > The LGPL is ineligible primarily due to the restrictions it places on larger > works, violating the third license criterion. Therefore, LGPL-licensed works > must not be included in Apache products. > Special exceptions to the GNU GPL > Some copyright holders have licensed their works under the GPL with special > exceptions. Although these exceptions may appear to be addressing the > restrictions disallowed by the ASF's first and second license criteria, the > exceptions may only apply to software not "derived from or based on" the > covered work. This references terms defined in the GPL that include works > that "use" or "contain" the work. > > This is also the GPL and ALv2 compatible, just for reference: > > http://www.apache.org/licenses/GPL-compatibility.html > > You may find other interpretations in mailing lists, or from > other folks, or via mail archives, but my preference would be > taking the explicit understanding from the Legal resolved > page above. > > Cheers, > Chris >
Cool -- I have no intention of debating this... or asking legal, or whatever. It is very clear that you can not *distribute* lgpl files. The statement Greg pointed to earlier from the same page implies that you can compile/test with LGPL dependencies: Apache projects cannot distribute any such components. However, if the component is only needed for optional features, a project can provide the user with instructions on how to obtain and install the non-included work. Optional means that the component is not required for standard use of the product or for the product to achieve a desirable level of quality. The question to ask yourself in this situation is: "Will the majority of users want to use my product without adding the optional components? - - - - - - - That said, I totally respect the choice not to want an external JTS compile/test dependency. ryan
