On Wed, Oct 01, 2008 at 07:26:34AM -0400, Olin Lathrop wrote: > Byron Jeff wrote: > > The likely requirements for a license that you want are as follows: > > > > 1) Anyone can use the library in their product without having to > > release their source. > > > > 2) Anyone that improves the library is required to release the > > improvements under the same license as the original library. > > This second requirement may be counterproductive, depending on the OP's > aims. If he is trying to push the social agenda of free software, then it > makes sense. If he wants the world to get the maximum benefit from his work > and is seeking at most recognition for it, then this is too restrictive. > It's clear that by originally releasing under the GPL v3 that #2 was a goal. If it wasn't then there's no reason to even take a look at a GPL or LGPL style license. > Here is what I use for most of my publicly distributed PIC code: > > ; *************************************************************** > ; * Copyright (C) 2008, Embed Inc (http://www.embedinc.com) * > ; * * > ; * Permission to copy this file is granted as long as this * > ; * copyright notice is included in its entirety at the * > ; * beginning of the file, whether the file is copied in whole * > ; * or in part and regardless of whether other information is * > ; * added to the copy. * > ; * * > ; * The contents of this file may be used in any way, * > ; * commercial or otherwise. This file is provided "as is", * > ; * and Embed Inc makes no claims of suitability for a * > ; * particular purpose nor assumes any liability resulting from * > ; * its use. * > ; *************************************************************** > > It's plain, simple, and asks so little in return for using the code that > very few people or organizations will find the cost too high. This > maximizes dissemination of the code and thereby its overall usefulness. > There is also little incentive to cheat. As loathe as I am to jump back into this once again, I feel I must. First off I'm going to take the term "free software" off the table. The term free is too perjorative and conjures too many expectations in folks minds when they hear it. The expectation is to get it for nothing and having to give back nothing. Stallman really screwed up when he coined the term. I have and continue to argue that there is a middle ground between closed source commercial software and viral GPL software. But everytime I attempt to make that argument, it is presumed that I am championing GPL software, which most everyone seems to loathe because of its viral nature. GPL software does have its place, but because of its viral nature it is going to be as limiting as commercial closed source software. This middle ground, which I call community software, does in fact have a social agenda. It's an agenda of fairness and the fact that there is an implied social contract that posits that you can't really get something for nothing. I presume Olin that you slap the above license, which is little more than a modified BSD license, because the software, or its modifications have no real value to you. If there's is great value, then you sell it. But by allowing anyone to do anything whatsoever with it, there is the implication that the value of whatever comes from it is quite small. But there is software in the middle. It's useful, but not too useful. There room for extensibility, but the original author may not have the time or inclination to put in that effort to do the actual extension. Or fully fleshing out the project is more than one person can chew. OTOH there are no funds to pay someone to fill it out either. Now one can try to sell, either commercially or via shareware. But then there's an obligation to support users and to fully flesh out the initial framework. Or one can give it away and not nessicarialy gain the benefits of any addition work that gets done. It's two extremes. The two tenets I outlined at the top are not GPL nor LGPL licensed software. Neither is it BSD or your license. The former two would require that anyone using the software to publish their application, while the latter two have no requirements whatsoever. The first two will be shunned by developers who could benefit, while the latter, by removing any obligation whatsoever (other than posting the copyright notice), will tend to have any useful changes stay supressed. Now do you see why I removed the word "free" from the discussion. I don't want everything to be free, I want shared effort from a group of developers to be available to everyone. Free to use: yes. Free to change: No. Just so that we're clear let me add some notation: L=Library under a license A=Application using the library. L'=Modifications to L. So the complete application is A+L or A+L'. The differences in the licenses is what license is applied to A and what needs to be done with the changes that make L into L'. With the GPL, the viral nature forces the application of L's license to A. Everyone balks at that. So if L is GPL, then both A and L' must be GPL to, which requires the release of source for either A or L' to anyone who gets A+L or A+L'. That's out. I'm fine with that. With the BSD (and Olin's license above) there are no licensing nor distribution requirements for either A or L'. Anyone who generates A or L' is unencumbered in terms of license (other than keeping the copyright notice on L'), distribution, sale, or release of source. The problem is twofold: if L' is useful, then no one may get access to L'. Also different L' from different developers may never get resolved if no source is released for them. Now commercial developers like the flexibility and lack of cost. There are no requirements on them. However, lack of access to L' can be damaging to the group. Note that nothing has been said about A, since A is a user of L or L'. It belongs to the individual developer. The LGPL is closer to what I see as ideal. A and L/L' are separate. A is the developers, while L/L' belongs to the community. If you use L, then you have no further oblications. However if you update L to L' you must share the changes to L to make L'. That way the next developer can benefit from improvements to L, while not gaining any additional access to A, which belongs to the developer that wrote it. The problem with the LGPL is that it requires that the end user be able to update L or L' to L" No problem with shared libraries on typical systems. But fails in embedded space because there's no way to easily separate A+L or A+L' to create A+L". At the end, the question is what is the problem with requiring that if you make changes to something that was freely offered to you, that you have to offer those changes back? What's fundamentally wrong with this "Pay it Forward" model. It doesn't prevent you from being commercial and closed source (like the GPL). It's doesn't give developers free reign to do what they see fit without regard to the community that helped them (like the BSD or Olin's license). It's not a free lunch, it's a shared one. What's wrong with that? Why is it that one either has to pay through the nose and have draconian license restrictions or they have to give up the whole farm with nothing offered in return? Please comment on the social agenda. Because that's what this post is about. BAJ -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist