Releasing software

When releasing a product based on the Yocto project, we have to consider that we are building on top of a multitude of different open source projects, each with different licensing requirements.

At the minimum, your embedded product will contain a bootloader (probably u-boot), the Linux kernel, and a root filesystem with one or more applications. Both u-boot and the Linux kernel are licensed under the General Public License version 2 (GPLv2), and the root filesystem could contain a variety of programs with different licenses.

All open source licenses allow you to sell a commercial product with a mixture of proprietary and open licenses as long as they are independent and the product complies with all the open source licenses. We will discuss open source and proprietary cohabiting in the Working with open source and proprietary code recipe later on.

When developing open source applications, it's important to give careful thought to the license the software will be released under. It is very common to take sections of code from other open source projects, or to use an existing open source library. By doing that you might need to inherit the license from the other project, as outlined in the table at:

https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility

As a general rule, software under the GPLv3 license will only be reusable by the free software community. A LGPLv3 license will allow you to include code from permissive licenses such as MIT or Apache 2.0, but LGPLv2.1 will allow the code to be used by most free software. For the code to be reused even by commercial projects, choose a permissive license such as MIT.

It is important to understand all the licensing implications before releasing your product to the public. The Yocto Project provides tools to make handling licensing requirements an easier job.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset