You are here: Home / OSADL / News / 
2024-11-22 - 06:15

Dates and Events:

OSADL Articles:

2024-10-02 12:00

Linux is now an RTOS!

PREEMPT_RT is mainline - What's next?


2023-11-12 12:00

Open Source License Obligations Checklists even better now

Import the checklists to other tools, create context diffs and merged lists


2023-03-01 12:00

Embedded Linux distributions

Results of the online "wish list"


2022-01-13 12:00

Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completed

Another important milestone on the way to interoperable Open Source real-time Ethernet has been reached


2021-02-09 12:00

Open Source OPC UA PubSub over TSN project phase #3 launched

Letter of Intent with call for participation is now available



2023-11-12 12:00 Age: 1 Years

Open Source License Obligations Checklists even better now

By: Carsten Emde

Import the checklists to other tools, create context diffs and merged lists

Imagine you have decided on an Open Source project that you want to use in an embedded system and have just discovered that 20 different licenses are used in it. You may be familiar with OSADL's Open Source License Obligations Checklists and know that you can quickly find out which license obligations must be fulfilled for an individual license. But the idea that you now have to study 20 checklists, sum up all obligations and ignore duplicates is not exactly inspiring. And you say to yourself that it should actually be possible to automatically create a cumulative checklist ...

... yes, and that's exactly what you can do now that we have completed a converter from checklist to JSON format. Simply select the appropriate licenses, click on "Create and download cumulative checklist" and you'll have everything you need. And there's a bonus: Since the JSON format is supported by a number of tools, the checklists can now be imported into such tools. This makes it possible, for example, for a scanning tool to immediately provide a list of obligations together with the licenses found. By the way: If you want to use the OSADL Open Source License Obligations Checklists, you need an individual account for legal reasons. If you don't have one yet, we will be happy to set one up for you. That's free. Simply send us a short request via email or contact us otherwise.

Merging

In the above short example the four licenses PNG Reference Library version 2, libtiff, MIT and SSH OpenSSH were selected. After clicking on a button labeled "Merge selected checklist" below the original checklists table on the OSADL checklists page and selecting "Unify obligations", the below given accumulated checklist was created that can optionally be displayed on screen in JSON format. It may be copied to clipboard and downloaded for further processing.

{
"libpng-2.0|libtiff|MIT|SSH-OpenSSH": {
"COPYLEFT CLAUSE": "No",
"PATENT HINTS": "No",
"USE CASE": {
"Binary delivery": {
"IF": {
"Software modification": {
"IF": {
"Modified work Is Protocol incompatible": {
"YOU MUST NOT": "Use \"ssh\" OR \"Secure Shell\" In Name"
}
},
"YOU MUST": "Provide Modification notice"
}
},
"YOU MUST": [
"Provide Copyright notices In Documentation",
"Provide License text In Documentation",
"Provide Warranty disclaimer"
],
"YOU MUST NOT": [
"Misrepresent Authorship",
"Promote"
]
},
"Source code delivery": {
"IF": {
"Software modification": {
"IF": {
"Modified work Is Protocol incompatible": {
"YOU MUST NOT": "Use \"ssh\" OR \"Secure Shell\" In Name"
}
},
"YOU MUST": "Provide Modification notice",
"YOU MUST NOT": "Misrepresent Modified work"
}
},
"YOU MUST": [
"Provide Copyright notices In Documentation",
"Provide License text In Documentation",
"Provide Warranty disclaimer"
],
"YOU MUST NOT": [
"Misrepresent Authorship",
"Promote"
]
}
}
}
}

Back to the checklist form

The above JSON document can be reconverted to the checklist "language" so it would look like as follows:

COPYLEFT CLAUSE No
PATENT HINTS No
USE CASE Source code delivery
YOU MUST NOT Misrepresent Authorship
YOU MUST NOT Promote
YOU MUST Provide Copyright notices In Documentation
YOU MUST Provide License text In Documentation
YOU MUST Provide Warranty disclaimer
IF Software modification
YOU MUST Provide Modification notice
YOU MUST NOT Misrepresent Modified work
IF Modified work Is Protocol incompatible
YOU MUST NOT Use "ssh" OR "Secure Shell" In Name
USE CASE Binary delivery
YOU MUST NOT Misrepresent Authorship
YOU MUST NOT Promote
YOU MUST Provide Copyright notices In Documentation
YOU MUST Provide License text In Documentation
YOU MUST Provide Warranty disclaimer
IF Software modification
YOU MUST Provide Modification notice
IF Modified work Is Protocol incompatible
YOU MUST NOT Use "ssh" OR "Secure Shell" In Name

This checklist can then be displayed by the checklist user interface in the usual way where USE CASEs and conditions can be selected – essentially everything one could do with a checklist of a single license to reflect the properties of a particular product. In this example, only "Binary delivery" was selected as USE CASE, and a protocol-compatible software modification was assumed.;

QA license compliance checklist

The next step could then be to create a ready-to-use, clickable checklist that can be employed by the company's QA department when checking the license compliance of a particular product. This is done by clicking on the button labeled "Printable checklist of current selections".

QA error report

Assuming that a product was submitted to the QA department along with the above checklist and the QA engineer was unable to locate the warranty disclaimer in the product's paper work or graphical user interface, the life cycle of the checklist form still does not yet end, since it may now serve as QA error report. In detail, the QA engineer may check the correctly fulfilled obligations and highlight the unchecked ones so it looks like in this example document that may then be returned to the development department for consideration in the next release cycle of the product.

Technical background

The functionality described here is largely based on software from the OSLOC2JSON project, with which the checklists can be converted into the JSON format that can be used by a computer. This software also allows the checklists to be edited as described here.