RE: Re: AW: License proposal (Summary)
"Christian Cryder" <[email protected]> Fri, 9 Jan 2004 23:50:02 -0500
| Newsgroups | gmane.comp.java.enhydra.barracuda.general |
|---|---|
| Message-ID | <[email protected]> |
Ok, so there's been a lot of discussion. I'm going to attempt to summarize what we know thus far. First, regarding copyrights... 1. All original authors of code retain the copyrights to that code (which is why we have to ask your permission to change the license). The only exception to that was me, since I worked for Lutris - all code I wrote while working for them (most of the original Barracuda code base) belonged to them. ATMReports has since purchased those rights to donate them to the community. Technically, they now own the copyrights, but I could probably ask them to transfer them back to me, just so all copyrights are owned solely by the original authors. 2. Now, when you contribute code to an open source project, you license other people to use (and even change!) your code. The specific rights/requirements depend on the license, and no one can change the terms of that license except for you the copyright holder. 3. If you have one entity that owns the copyright, then technically the could change the license at any time they see fit - this was always one of the concerns w/Lutris (and I suppose even Apache could do this if they desired?). So in my opinion, I think its important to see copyrights continue to be owned by the original authors - that serves as a source of stability by making it difficult for any one person/entity to co-opt the project. Of course this brings us to our second issue: licensing. Once we pick a license, we really are stuck with it for the long haul...so its important we do it right. 1. Picking the wrong license _can_ be a serious deterrent from adopting a technology. Many companies won't touch stuff that's GPL because of its viral implications. Those of you who were here from the early days may recall that one of the biggest concerns people had for NOT adopting XMLC, Enhydra, and to a lesser extent Barracuda was the fact that a) it was based on a proprietary open source license (EPL), and b) some developers were distrustful of the company behind the license (Lutris). All this to say we need a license that is standard, and which won't be a disincentive in any way; we want people to make their decisions about Barracuda based on its technical merits, not its license. 2. Our basic options (at least those we know will work with ObjectWeb) are BSD and LGPL. And I think both of those are reasonably safe solutions. 2a. The advantage of BSD (http://www.opensource.org/licenses/bsd-license.php) is that it is about as non-restrictive as you can get: use it, do whatever you want with it, but you must continue to mention us in the copyright section. The disadvantage is that you don't require people to donate back. [Note: some have voiced a concern that some corporate entity could fork the project by taking the Barracuda code base and applying enough money. This really isn't a concern to me - I just don't seeing it happen, and even if it did, I fail to see how it could hurt us.] 2b. The advantage of LGPL (http://www.opensource.org/licenses/lgpl-license.php) is that it requires people to submit their changes back to the project (in the sense of making them public). Both licenses protect against liability - no one can come and sue you because code you wrote for Barracuda had a bug in it. LGPL goes a step further and also tries to protect developers from patent abuse on the open source code (this is good, but I'm not sure I understand exactly what the license means in this area). The one significant disadvantage, IMHO, is that in an effort to control distribution, LGPL describes libraries/applications rather archaically (in ways that don't seem to correspond directly to Java and webapps); furthermore, it also uses vague terminology about derivative works, in certain instances requiring them to be licensed LGPL. We've already discussed this on the list - viewed charitably, it seems reasonable that as long as you don't actually modify the LGPL source, then you can use the library, and even if you make modifications, all you have to provide is the modified LGPL source, not your proprietary project that uses it. This would seem to allow for commercial products that leverage or extend Barracuda, and more importantly, for developers to import LGPL libraries, extend LGPL classes (since as Alfred aptly pointed out, Java classes allow authors to _prevent_ extension if so desired), etc, without ever having their end applications falling under LGPL. Now, in describing it this way, I've used the term "viewed charitably," since this particular interpretation is coming from all of us developers reading the license somewhat sympathically. At the very least (as demonstrated by the widespread discussions about Java and LGPL), there is some measure of fuzziness out there. My concern is that when I go back and actually _read closely_ the LGPL license, the fuzziness doesn't get clearer. So what if we try and view the LGPL more "skeptically"? It seems that one possible abuse would be for someone to try and apply the derivative works clause to any Java code that uses LGPL must itself be released as LGPL. I am playing devil's advocate here: what if Joe Coder writes an online auction system built on an LGPL version of Barracuda, and then sells this application to vertical markets (thereby redistributing his application along w/Barracuda .jar). Let's say EBay's notices and decides they want his market. Could they file a suit claiming that because his application extends LGPL classes, he must "release" the whole thing? Joe obviously can't do this, because it would eliminate his competitive advantage. So the only recourse would be to stop using LGPL technology, or to spend a whole lot of money fighting a lawsuit. I'm not saying this interpretation is valid, but it does seem to be a _possible_ interpretation of the LGPL (so it wouldn't get thrown out of court immediately). And the LGPL has not been tested in court, so the outcome is not entirely certain. My concern then is that the fuzziness of LGPL's "derivative work" clause could be leveraged by a company-with-money to pull the rug out from underneath a less-well-financed competitor. If that's a possiblity, that would in turn be a disincentive for companies to adopt LGPL. Now, I've just painted the picture as bleakly as possible just to make sure we're not overlooking something here. I'd like to hear comments on this. Of course we need to keep in mind that LGPL is a _very_ widely accepted license, and the dark side interpretation I've just suggested has not actually been used by anyone (although SCO is doing something similar in regards to challenging Linux and GPL). My guess is that it would be very unlikely for a court to uphold such a claim in court (the ramifications would be simply enormous). That said, we need to make sure that we don't pick a license which leaves developers open to legal challenges. To that extent, the BSD license seems a little safer. In conclusion, I'd like to suggest that everyone take a few minutes and _read_ the LGPL over again, closely - looking at what it says about derivative works. I think I will send an email to Free Software Foundation and see if I can get any clarification of these issues. What we need to come up with is a clear answer from the license that refutes the above scenario I've described. Alternately, we may want to consider if it might not be safer (for companies using Barracuda) just to go with BSD (or should we be considering some other alternative from http://www.opensource.org/licenses/ ...if we really think some 3rd option is best, we could always ask OW if they'll accept it). Comments and feedback welcome, but lets all start looking for a way to wrap this discussion up (eg. what do we need to resolve in order to make the best decision one way or the other). Hopefully we can reach some kind of conclusion early next week. Cheers, Christian ---------------------------------------------- Christian Cryder Internet Architect, ATMReports.com Project Chair, BarracudaMVC - http://barracudamvc.org ---------------------------------------------- "Coffee? I could quit anytime, just not today" > -----Original Message----- > From: [email protected] > [mailto:[email protected]]On Behalf Of Xue-Feng Yang > Sent: Friday, January 09, 2004 12:15 PM > To: [email protected] > Subject: Re: [Barracuda] Re: AW: License proposal > > > I have one more question about a commercial J2EE > component vendor. > > Normally, J2EE components are divided into a few > layers, for instance, core layer, solution layer, and > domain layer. In general, the core layer and the > solution layer are coded into library for sale and > domain layer belongs to the customer. So the domain > layer will be given with source. However, the core > layer and the solution layer will be only given as > binary. > > If the classes in the core layer and the solution > layer extend a LGPLed software, they have to be > LGPLed, too, since they are the extended library. Am I > right? > > Xue-Feng > > > > ______________________________________________________________________ > Post your free ad now! http://personals.yahoo.ca > _______________________________________________ > Barracuda mailing list > [email protected] > http://barracudamvc.org/lists/listinfo/barracuda