Useful tips for releasing Open Source code with commercial products
Created at Monday, 30 August 2010 22:48 Last Updated on Monday, 18 March 2013 10:49
Written by Armijn Hemel 葛冬梅/翻譯
1. BusyBox configuration
You need to provide the configuration that was used to build BusyBox as part of the source code. Depending on the version of BusyBox this is a file called Config.h (BusyBox 0.60.5 and earlier) or .config (1.00-pre1 and later).
2. Linux kernel configuration
If your product uses the Linux kernel you have to provide the configuration that was used to build it as part of the source code.
3. Extra Linux kernel modules
If your product uses extra kernel drivers you may have to provide their source code. You should check their license terms carefully.
4. C library
If your product uses glibc or uClibc you have to provide sources. If the software development kit (SDK) received from your supplier only has binaries, you need to request the source from the supplier.
5. Object files
If you have a program that links non-Open Source code to code licensed under LGPL 2.1, then you need to provide the object files and build configuration. That means including the Makefile and so on.
Example:
liborz-0.11 is LGPL 2.1 licensed. It is linked with foo.o into a program called bar. To fulfill the LGPL requirements you have to provide the sources for liborz-0.11, the object file foo.o and the Makefile to combine these two.
6. Bootloader
Many devices are shipped with a GPL licensed bootloader, such as ARMboot, PPCboot, RedBoot or u-boot. If the bootloader is GPL licensed you will have to provide source code to your customers. If the bootloader is provided by the supplier then they must give you the source code.
7. Toolchain
If you distribute a binary toolchain (compiler, binutils, C library) licensed under GPL/LGPL with a device or on the Internet then you need to make the source code available too. The toolchain often comes as part of the software development kit (SDK) from your supplier and you can ask them for the source code.
8. Firmware
Firmware often contains leftover programs from other devices because many different products are made from a single source tree. If these programs are licensed under GPL or LGPL then source code must be provided for them when the firmware is distributed. There are two solutions: supply the source code or remove any unused programs from the source tree.
9. Source archives
Source archives often contain leftover programs from other devices because many different products are made from a single source tree. If these programs are licensed under GPL or LGPL then source code must be provided for them when the firmware is distributed. There are two solutions: supply the source code or remove any unused programs from the source tree.
Copyright © 2010 Armijn Hemel, gpl-violations.org,
This work is available under the
Creative Commons Attribution-No Derivative Works 3.0 Unported license.