Once you determine that you have GPL or LGPL code in your software, make sure you understand and follow all of the appropriate requirements. Some of those requirements may not be readily apparent, but they can include:
- Including source code with your product OR including an offer to get source code with your product
- Providing the exact "corresponding source" that goes with the binaries for each product and model
- Providing instructions on how to create binaries from the source — including scripts, information on the tools needed, and details on how to replace the standard code in your product with the modified code
- Providing the source code in electronic AND physical media
- Maintaining the source code for a period of time after the latest distribution of your product
Wait! Before you say GPL is restrictive (which in my opinion it's more about philosophy than restrictions), remember that *you* should know where all your third-party source code is coming from -- whether it's GPL or not. The one bullet I'd suggest adding to the list is asking the open source projects you use to keep an up-to-date list of other open source projects/code they use with their respective licenses in with their source. A lot of problems could be mitigated by coming up with an XML format that would allow the sharing of this information which could be bundled with a tool (such as an ANT task) to combine them when building sources for distribution. At Mach-II, we do keep a list of other open source projects that are bundled with the project and their licenses.