On Mon, Dec 19, 2005 at 09:02:01PM +0800, Xiaofan Chen wrote: > On 12/19/05, Tad Anhalt wrote: > > > Check the license that was distributed with avrgcc. It's been a > > while since I had a reason to look into this (and not for avr at any > > time), but the "standard" libraries probably have a specific exemption > > allowing you to link them however you want. > > I think you mean avr-libc. It is a nice license --> modified BSD license. I've sat on the sidelines for most of this discussion. Gerhard has done a fine job arguing against the "viral" connotation. Olin, Gerhard, and Wouter have all pointed out that there's no gun to any developer's head to to use any codebase. I have a problem with "nice license" above. It's a license. It has its pros and cons just like every other license. Nice would be from a developer/reseller perspective. One can keep one's own source closed and use this library. I don't have a problem with that. However, this type of license is subject to VAR abuse. This occurs when some VAR takes it upon themselves to modify/improve the library itself and then resell the updated library without releasing the source. I have a problem with that, and so I have a problem with licenses that allow for that to happen. The LGPL does not allow for this type of abuse. Any modifications to the library itself are considered GPL and the source must be released. However simply using the library unmodified via (unfortunately dynamic only) linking does not impose any license requirements upon the developer generated code. > I guess it should be the preferred to distribute embedded MCU > libraries. I disagree. There's a hole in the Open Source license structure for this situation. The license needs to balance several elements: 1. The library itself should be open source. Specifically modifications to the library proper should have redistribution requirements imposed. 2. The developer's code that uses the library should have no license imposition. 3. (A debatable issue): The end user should be able to utilize updates/improvements in the library. So let's see how two common licenses stack up: BSD 1. No 2. Yes 3. No Not so nice in my opinion because it skews to far towards the developer. LGPL 1. Yes. 2. Most of the time. Exceptions governed by... 3. Yes. Not so nice in my opinion because it skews to far towards the user. What I'd like to see is a license with... 1. Yes. 2. Yes. 3. No. Fundamentally this last license is the LGPL with the update requirement removed. It has a balanced tradeoff where the developer must published changes to the library itself. However, in return they have no license restrictions imposed upon their applications code, regardless of linking method, and they are relieved of the responsibility of having to provide end users with firmware updated with the latest library updates. So the library isn't completely open, but mostly so from the source standpoint, nor completely closed, because all modifications to the library itself will be released. Does such a license exist? This would be a nice license for embedded systems because everyone would be able to benefit from the library itself without having to release application code to use it. BAJ -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist