Software Licensing

Company Name

As for the other parts of the documentation, this page uses the acronym "KED" (which means "Kontron Electronics Deutschland") to refer to "Kontron Electronics GmbH", which is part of "Kontron S&T AG".

Completeness and Correctness

The information on this page does not make any claim to be complete or to be legally correct. It is intended to give a basic idea of licensing how we at KED understand it and can serve as a starting point for your own considerations.

Licenses of Software Packages

The software delivered with boards and modules (Board Support Package, BSP) by Kontron Electronics GmbH contains open-source software with license agreements that, among other things, restrict linking against closed-source applications (e.g. GPL, LGPL). Before using any of the libraries or applications, it is therefore necessary to check the license agreements of the used source code. The licenses are contained within the source code of the software packages. Furthermore it is necessary to check any valid patents and license conditions of the used software, especially for multimedia formats (e.g. mp3 format). Kontron Electronics GmbH does not assume any liability for infringements of patents or license agreements of parts of the provided BSP. Inside the Yocto build system you find a directory in <builddir>/tmp/deploy/licenses, that holds copies of all the licenses of the packages, that were built. To get a list of all the packages and their licenses included in your image, you can look at the file license.manifest in <builddir>/tmp/deploy/licenses/<full-image-name>.

If you have no access to those files, feel free to ask KED to provide them for you.

Typical open-source licenses

Here are some notes and further information on different licenses.

GPLv2 used by the Linux kernel and many other packages

If you release or redistribute a product, that includes software under GPLv2, you are bound to provide the source code of those parts with your product (copyleft). You can either include the source code with your product and deliver it together, or you can include a written offer to provide the source code when requested.

  • Attention: GPLv2 does not allow you to provide the source code via a network service (e.g as download). You must deliver it on physical media. Only GPLv3 allows delivery via downloads.

  • Many GPLv2 licensed packages include the possibility to license it under a later version of the same license (e.g. GPLv3), but the Linux kernel for example is GPLv2 only.
    If you use code inside your application that is licensed under the GPL you must not keep your application code closed, you are obligated to use the GPL and have to provide the programs source code to your customers.

  • Frequently Asked Questions (FAQ)

  • A Practical Guide to GPL Compliance

GPLv3

The GPLv3 is the modernized and updated version of the GPLv2.
See http://www.gnu.org/licenses/quick-guide-gplv3.html.

LGPLv2.1 used by many libraries

The LGPL is similar to the GPL, but allows that your own proprietary applications link against libraries that are licensed under LGPL, without the need to make your application code public. If you make changes or additions to the original software, you have to provide these changes to your customer.

LGPLv3

The LGPLv3 is the modernized and updated version of the LGPLv2.

MIT

The MIT license even allows you to modify and distribute software packages, without the need to publish the source code (no copyleft). It is still necessary to include the license notice in your product.

BSD

The BSD license is similar to the MIT license and has no copyleft.

Proprietary licenses (e.g Freescale/NXP or other HW manufacturers)

The BSP might also contain packages, firmware or drivers, that are licensed under proprietary licenses by the manufacturer or other third parties. Depending on your product, those agreements need to be checked for compliance.

License compliance

It is essential to make sure, that your final product complies with all the licenses of the included software packages. As mentioned in the last paragraph it depends on the used licenses what you have to do for a full license compliance.

Notification in the manual

Almost all licenses require that you inform your customers in your manual that you use open-source software. You have to mention that parts of your software are open-source software and deliver a list of the components you are using and their particular licenses.

Source code delivery

If you are using software licensed as GPL or LGPL you have to deliver the source code and license texts of this software to your customers or at least, make it possible that your customer can get it. There a several options to achieve this.

  • Direct delivery with your product: You can accompany your product with a volume containing all used source code under the mentioned licenses.

  • Written offer: You can state in your manual that every customer of your product can get a copy of the source code as long as the delivery of your product is no longer ago than three years or as long as you deliver spare parts. It is allowed to ask for a small fee to cover your expenses.

  • Download (For (L)GPL V3 code only): You can send your customers a link where they can download the source code. You have to guarantee that the link will be accessible for the same time as it would be for the written offer.
    KED will automatically generate an archive with the used source code files of your product. Due to the size of this file of a few GB we will not send it to you every time it will be generated.
    Please feel free to contact KED whenever you need this archive. Please be aware that we only can integrate the source code of the programs we have access to. If you add further open-source software, you have to append these sources to our archive.

Adding own software to your product

If you are using (L)GPL in version 3 licensed code you have, for version 2 it is recommended, to give your customer the opportunity to install his own programs on your product. For code under (L)GPL version 3 you are obligated to grant your customer the right to install his own programs on your product. Version 2 of the license only recommends, but does not enforce this. To ensure the security of your device, this opportunity does not have to be included in your product from the beginning, it is appropriate to require your customer to send the product back to you and you will disable the necessary security features to allow the installation of custom programs. You can demand that all given warranties of your product will expire at the time of applying custom software.

Exemplary text for your manual:

English:

This product contains software components which are licensed as free
respectively open-source software under the GNU General Public License, versions
2 or 3, or the GNU Lesser General Public License, versions 2.1 or 3.
Everyone can get the source code of this software components from us on a data
storage medium (CD-ROM, DVD, USB drive) if requested at our customer support at
the following address within three years after the delivery of the product or as
long as we offer spare parts or support for the product.  

[Name of the company]  
[Contact person]  
[Address]  

Including the statement of the following product data:  

[Product name]  
[Serial number]  
[Date of delivery]  

We also require a fee of EUR 10,- for the costs of preparation of the medium and
shipping to be transferred to the following bank account [Bank account]
Preventive it should be mentioned here that using the right of installing own
versions of the open-source software components, which is guaranteed in the
license contract, will expire all certifications and warranties of the product.
The operation of the manipulated product will happen on one's own authority.

German:

Dieses Produkt enthält Softwarebestandteile, die von den Rechteinhabern als
Freie Software bzw. Open Source Software unter der GNU General Public License,
Versionen 2 bzw. 3, bzw. der GNU Lesser General Public License, Versionen 2.1
bzw. 3.0, lizenziert werden. Jedermann kann den Quellcode dieser
Softwarebestandteile von uns auf einem Datenträger (CD-ROM, DVD oder USB-Stick)
erhalten, wenn innerhalb von drei Jahren nach der Auslieferung des Produkts an
den Kunden oder solange, wie wir Ersatzteile oder Support für das Produkt
anbieten, eine Anfrage an unsere Kundenbetreuung an folgende Adresse  

[Name der Firma]  
[Ansprechpartner]  
[Adresse]  

mit Angabe folgender Produktdaten  

[Name]  
[Seriennummer]  
[Auslieferungsdatum]  

gestellt wird und EUR 10,- für die Kosten zur Erstellung des Datenträgers und
dessen Versendung vorab auf folgendes Konto [Kontoverbindung] überwiesen werden.
Vorsorglich wird darauf hingewiesen, dass die Nutzung des im Lizenzvertrag
zugesicherten Rechts, die Open Source Komponenten gegen eigene Versionen
auszuwechseln, zum Erlöschen der Zertifizierung bzw. Garantie führt. Der Betrieb
des entsprechend geänderten Gerätes erfolgt auf eigene Verantwortung.

Building Yocto image from source code

Install Yocto as described here: https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html Unpack the archive in the yocto main folder. Setup your environment and download the missing code to build the image. Attention: Some of the code could not be downloaded as it has a proprietary license. Remove these components of the image.
If you have questions, please contact support@kontron-electronics.de.

Using Qt in a Product

There are several licensing options for Qt. You should decide on one of them before starting to design your application, as switching from the open-source license to the commercial license is not allowed.

Here are some sources for further information:
Qt Licensing
Qt: Making the right licensing decision