Suppose that I am writing the firmware F for the device D, and that I am using the library L which is licenses under GPLv2. The library L is a “source code library” that means that it is not compiled, but is composed of source code files that need to be compiled and linked with the main application.
The device D is a custom device for the customer C, so it is not meant to be sold to everybody, but only to customer C.
What am I obliged to do in this case?
Do I have to provide customer C with all of the source code of firmware F?
How am I supposed to provide this source code?
0
Try reading the license. It’s surprisingly readable for a legal document.
Also see http://gnu.org/licenses/gpl-faq.html
Basically,
-
you must provide a copy of the GPL
-
you must provide source code, or a written offer for source code. But the written offer has other obligations, so it’s probably easiest to just provide the source with the product.
-
The source code for a work means the preferred form of the work for making modifications to it. It must be provided on a “medium customarily used for software interchange.” You must include the code, headers, and build scripts.
2
The GPL requires that any time you distribute the software, you must either include the source code or make it available for download with clear instructions on how to do so (e.g. provide a URL to your public repository or download page).
You are only obligated to provide the source code to whomever you are distributing binaries. For the vast majority of GPL projects, the software is available to the public so the source must be as well. In your case, the binaries are only available to specific customers, so only those customers must receive source code (or have it available).
As far as “when,” you must make the source code available no later than the instant the binaries are available.
2