On Tue, Jan 27, 2004 at 04:00:08PM +0100, Wouter van Ooijen wrote: > > AFAIK: > > > > - if you use GPL source code *STATICALLY LINKED* to your own > > code, you must release your source code as GPL. > > > > - if you use GPL source code *DINAMICALLY LINKED* to your > > code, yours is not GPL, unless you want it to. > > I think you are right if you meant LGPL. For GPL this distinction is not > made. Correct. If it's GPLed code, you must release the source in all cases when you distribute additions or modifications. Note that this applies to distribution only. If you make changes and you don't give it to anyone, then you're not obligated to do anything at all. > Unfortunately a PIC chip never contains dynamically linked code... True. But as you well know that with the LGPL if you statically link, you still don't have to release the non library source. But you do have to have a way for a user to relink the applications code to an updated library. And the current PIC tools can support this. A quick example: 1) I write a library for the PIC and make it LGPL. I release the source and a relocatable object of the code. 2) You write an application as a relocatable object and use the linker to link my library in. You program the complete executable onto a PIC and sell it. Note that you make no changes to the library in this case. Now given this situation you do not have to release the source to your code as its just a user of the library. However you do have to make relocatable objects of your application available to your users so that... 3) I update the library and make it 50 times more efficient than before. The end user can get my library relocatable object, your application relocatable objects and use the linker to create a new, more efficient executable that they can then use. Note that you never released your source to the applications code. However by facilitating relinking (even statically) the user remains free to use the free library in such a way as to benefit them. Also note that you can place any license you want for your source and relocatable objects. No copying, no reverse engineering (I believe...???) etc as long as you do not restrict the users rights to utilize the free library. Now we both know that JAL doesn't do this at this time, because it includes the library code and produces absolute executables that cannot be relinked. So the BSD would be a better fit for JALs libraries as is does not have the "must be able to update" clause. A better solution is to recode JAL to produce relocatable objects. Then the full force of the LGPL can then be utilized. BAJ -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads