Time to set the record straight.
From the LGPL:
'For example, if you distribute copies of the library, whether gratis or
for a fee, you must give the recipients all the rights that we gave you.
You must make sure that they, too, receive or can get the source code.
If you link other code with the library, you must provide complete object
files to the recipients, so that they can relink them with the library
after making changes to the library and recompiling it. And you must show
them these terms so they know their rights.'
In others words you don't have to release your source, just the source for
changes to the library. However you must also release the object files for
the source that links with the LPGL code.
This isn't a big deal for applications that link dynamically since the
binary you would have distributed is in fact object code (for example if
you make a new web browser that links with the LGPL OpenSSL library, you
just need to provide your users with the binary, which you would have done
anyway). However in an embedded system without dynamic linking you would
have to provide ALL of your object code (i.e. all the .o files) and the
makefile/scripts or whatever you used to build your embedded target.
Note that if the creator of the LGPL library adds a clause allowing
'release without your object code provided the changes are outside the
LGPL library' (for example the ECOS project) then you don't need to
release your object code. However I have not seen such a clause for the
EFSL library (please correct me if I am wrong).
The net result is that if you use an LGPL libary in your embedded target
you must provide the changes to the EFSL library in addition to the object
code built from your source. If you have dynamic linking this can be the
executable itself. However if you only have static linking then you must
provide all of your object code plus any makefiles you used to build your
target.
Many people are familiar with the uIP and lwIP stacks, which started out
very strict and changed to BSD. Another example is libTomCrypt which was
GPL (or LGPL, I can't remember) and is now public domain. They changed
because people couldn't use their libraries in statically linked embedded
designs without releasing their object code (or worse, they used GPL
resulting in release of all the source). Hopefully the EFSL maintainers
will either add a clause (as in ECOS) or change the license to BSD/MIT/PD.
If you have any questions please feel to email me directly (off the list
if you want).
- Rod
--
___ ____ ___ _ ___
Rod Moffitt / _ \/ __ \/ _ \ (_)__ / _/__
http://rod.info / , _/ /_/ / // / / / _ \/ _/ _ \
rodANTISPAM@... /_/|_|\____/____(*)_/_//_/_/ \___/
=======================================================
~ Where loved ones are remembered http://memoriam.org ~Message
Re: [lpc2000] Re: Using LGPL code in your uC project
2005-11-22 by Rod Moffitt
Attachments
- No local attachments were found for this message.