<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OSI Archives - FODINA 4 FOSS</title>
	<atom:link href="https://fodina.de/tag/open-source-initiative/feed/" rel="self" type="application/rss+xml" />
	<link>https://fodina.de/tag/open-source-initiative/</link>
	<description>a treasure trove for free software, techniques, and ideas</description>
	<lastBuildDate>Tue, 08 Aug 2023 19:29:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>Automating FOSS Compliance: TDOSCA &#038; OSCake</title>
		<link>https://fodina.de/tdosca/</link>
					<comments>https://fodina.de/tdosca/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Sat, 28 Nov 2020 10:14:48 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[FSFE]]></category>
		<category><![CDATA[Licensing]]></category>
		<category><![CDATA[OSI]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=3106</guid>

					<description><![CDATA[<p>By releasing the Open Source License Compendium and the Open Source Compliance Advisor, Deutsche Telekom has supported Open Source Compliance. At BOSL‑3.0 I was one of the co-authors — on behalf of DT. But DT offers so many complex Open Source based products that it is too expensive to create the necessary Open Source compliance [&#8230;]</p>
<p>The post <a href="https://fodina.de/tdosca/">Automating FOSS Compliance: TDOSCA &amp; OSCake</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="alignleft size-full is-resized"><img decoding="async" src="https://fodina.de/wp-content/uploads/2023/06/oscake-logo-400x482-1.png" alt class="wp-image-6327" width="95" height="115" srcset="https://fodina.de/wp-content/uploads/2023/06/oscake-logo-400x482-1.png 400w, https://fodina.de/wp-content/uploads/2023/06/oscake-logo-400x482-1-249x300.png 249w" sizes="(max-width: 95px) 100vw, 95px"></figure></div>


<p>By releasing the <a href="https://fodina.de/oslic/"><em>Open Source License Compendium</em></a> and the <a href="https://fodina.de/oscad/"><em>Open Source Compliance Advisor</em></a>, <span style="color: #e20074;">Deutsche Telekom</span> has supported Open Source Compliance. At <a href="https://fodina.de/bosl-3-0/">BOSL‑3.0</a> I was one of the co-authors — on behalf of DT. But <span style="color: #e20074;">DT</span> offers so many complex Open Source based products that it is too expensive to create the necessary Open Source compliance artifacts manually. Thus, <span style="color: #e20074;">DT</span> needs a practically usable automated toolchain. This post discusses a new method (<a href="https://github.com/Open-Source-Compliance/tdosca">TDOSCA</a>) and a new tool (<a href="https://fodina.de/oscake/">OSCake</a>) for automating FOSS compliance that DT develops and contributes under the umbrella of the Open Chain Project.<span id="more-3106"></span></p>


<div class="container"><div class="d-flex justify-content-end sample-row"><div class="col-xs"><div class="text-right">[ en | <a href="https://karsten-reincke.de/tdosca">de</a> ]</div></div></div></div>



<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">3 simple questions for an Open Source Compliance tool</h2>



<p>Without any doubt, there exist already many Open Source compliance tools. The <a href="http://oss-compliance-tooling.org/Tooling-Landscape/OSS-Based-License-Compliance-Tools/.">Open-Chain-Reference-Tooling-Work-Group</a> has compiled a list of relevant information:</p>


<div class="wp-block-image"><figure class="alignright size-medium is-resized is-style-default "><a href="https://fodina.de/wp-content/uploads/2023/06/a-3questions.png" data-fancybox><img decoding="async" src="https://fodina.de/wp-content/uploads/2023/06/a-3questions-300x207.png" alt="TDOSCA architecture" width="160"></a></figure></div>



<ul class="wp-block-list">
<li>Some of the tools can be grouped by the offering organizations like the Apache Foundation, SPDX, Eclipse, or the About Code Initiative.</li>



<li>Some of the tools are on the sidelines because they have a specific focus or are not really tools or anything else.</li>



<li>Some other means are services, not tools.</li>
</ul>



<p><span style="color: #e20074;"><strong>Deutsche Telekom</strong></span> has a simple point of view on FOSS compliance tools. Whenever <span style="color: #e20074;"><strong>DT</strong></span> comes across such a tool, it asks: Does this tool deliver the FOSS compliance artifacts <span style="color: #e20074;"><strong>DT</strong></span> really needs? If not</p>



<ul class="wp-block-list">
<li>What part of them can it deliver?</li>



<li>How much work does <span style="color: #e20074;"><strong>DT</strong></span> still have to do manually if it used the tool?</li>
</ul>



<p><span style="color: #e20074;"><strong>DT</strong></span> has a long tradition of evaluating FOSS compliance tools. Its employees met excellent tools and brilliant experts. They often thought they could essentially support <span style="color: #e20074;"><strong>DT</strong></span>. But in the end, <span style="color: #e20074;"><strong>DT</strong></span> mostly felt like they didn’t really understand what DT needed (and still needs). To clarify this point: Whoever delivers large lists of (found) FOSS items and says that a company now has to discuss each entry of the list with its legal department does not really help the company.</p>



<p>Nevertheless, <span style="color: #e20074;"><strong>DT</strong></span> has to deal with such large lists, today known as ‘<a href="https://en.wikipedia.org/wiki/Software_supply_chain">Software Bill of Material</a>’. Open-Source-Compliance is not a question of pleasure or displeasure. Either one uses Open-Source software and fulfills the respective requirements, or one does not use the software. Therefore <span style="color: #e20074;"><strong>DT</strong></span> can’t wait anymore. The complexity of its products enforces <span style="color: #e20074;"><strong>DT</strong></span> to advance the automation of open source compliance actively. For solving that issue, it doesn’t want to start the next greenfield approach but to participate in existing projects — entirely in the spirit of the open-source idea.</p>



<h2 class="wp-block-heading">Setting up the <span style="color: #e20074;">T</span>est-<span style="color: #e20074;">D</span>riven environment </h2>



<p><span style="color: #e20074;"><strong>DT</strong></span>’s first step was to improve its own communication: it wants to clarify in a better way what it really needs — from the point of view of a large company dealing with many complex software stacks. Thus, <span style="color: #e20074;"><strong>DT</strong></span> tried to apply the idea of ‘Test-Driven Software Development’ to the development of compliance tools:</p>



<ul class="wp-block-list">
<li>On the one side, these test cases should contain really usable software, licensing statements, and dependency information — in a way that real projects use.</li>



<li>On the other side, these test cases should contain those compliance artifacts that would allow the distribution of the software compliantly if added to the respective software package. </li>
</ul>



<p>Additionally, <span style="color: #e20074;"><strong>DT</strong></span> thinks:</p>



<ul class="wp-block-list">
<li>E<em>xisting open-source projects are mostly too complex for being used as reference material</em>.</li>



<li><em>Artificially generated software could better focus on essential compliance issues</em>.</li>



<li><em>The reference software should functionally be a simple hello world program</em>.</li>



<li><em>And it should ‘implement’ sophisticated compliance issues </em>in a way that<em> real open-source</em> projects use.</li>
</ul>



<p>By using such test cases, DT wants to enable the community, the tools, and the companies to verify,</p>



<ul class="wp-block-list">
<li>with which compliance traps a tool can already successfully deal,</li>



<li>which artifacts a tool already deliver (and which not),</li>



<li>where there are still some open issues, and</li>



<li>where deviating results are only a matter of interpretation.</li>
</ul>



<h2 class="wp-block-heading">The ‘Hello World’ Open Source Compliance Test Cases</h2>



<p>All TDOSCA-test-cases are offered under the umbrella of the GitHub organization <a href="https://github.com/Open-Source-Compliance/"><em>Open-Source-Compliance</em></a> and clustered by the prefix <a href="https://github.com/Open-Source-Compliance/tdosca"><em>tdosca</em></a>. The README of main repository <a href="https://github.com/Open-Source-Compliance/tdosca/blob/master/README.md"><em>tdosca</em></a> describes the general approach: one may expect that each test case offers the same structure. For example, take a look at <a title="https://github.com/Open-Source-Compliance/tdosca-tc06-plainhw" href="https://github.com/Open-Source-Compliance/tdosca-tc06-plainhw">tdosca-tc06-plainhw</a>:</p>



<ul class="wp-block-list">
<li> On the top level, a test case-specific README describes its intention. </li>



<li>In the directory <em>input-sources</em>, you find a compilable software package
<ul class="wp-block-list">
<li>that contains the licensing information just as real open source projects do </li>



<li>and can be installed by a standard technique (in this case: java + maven). </li>
</ul>
</li>



<li> On the top level, a compliance-trap file describes the challenges that are implemented in the source and should be managed by the tools. </li>



<li>And in the directory <em>reference-compliance-artifacts, </em>one can find the compliance artifacts that a tool should deliver:
<ul class="wp-block-list">
<li>a BOM file listing the (sub) components of the package </li>



<li>a list of the packages that must be preinstalled on the target host </li>



<li>the Open Source Compliance File, which — added to the package — establishes a compliantly distributable open-source software package. </li>
</ul>
</li>
</ul>



<p>The test cases themselves are stored in the respective repositories<strong><em> tdosca-tc01</em></strong> … <em><strong>tdosca-tc0n</strong></em></p>



<p>The core reference entity of a test case is its <em>Open Source Compliance File</em>: Such a file shall contain all compliance artifacts so that a package is compliantly distributed if it is bundled with the respective OSCF. This idea was inspired by the file that CISCO adds to its jabber client: https://www.cisco.com/c/dam/en_us/about/doing_business/open_source/ docs/CiscoJabberforWindows-128–1578365187.pdf. This file is not completely sufficient. But it gives a good idea, how to deal with this issue. In the TDOSCA context, the meaning of such an Open Source Compliance File can be explained by looking at the <a href="https://github.com/Open-Source-Compliance/tdosca-tc06-plainhw/blob/master/reference-compliance-artifacts/oscf.pdf">OSCF of the 6th test case</a>.</p>



<h2 class="wp-block-heading">A summary and an addendum:</h2>



<p>In general each TDOSCA test-case implements the following structure:</p>



<p>The TDOSCA initiative — hosted under the umbrella of OpenChain and the OpenChain Reference Tooling Work Group — could be a good method for the community to evaluate its tools by such test cases.</p>



<p>But if <span style="color: #e20074;"><strong>DT</strong></span> followed this approach purely, <span style="color: #e20074;"><strong>DT</strong></span> would easily slip into the role of a police officer or a judge. That’s not what <span style="color: #e20074;"><strong>DT</strong></span> wants to be; it wants to be a supportive part of the community. For that purpose, <span style="color: #e20074;"><strong>DT</strong></span> has already evaluated existing tools on the base of the TDOSCA test cases, has made some experiences, and decided on some consequences:</p>



<h2 class="wp-block-heading">Applying the approach to ORT</h2>



<p>First <span style="color: #e20074;"><strong>DT</strong></span> decided to use ORT — the <a href="https://github.com/oss-review-toolkit/ort">Open Source Review Toolkit</a> — for creating a break-through tool-chain-version which takes the test-case input and derives the compliance output:</p>



<p>In the picture you see</p>



<ul class="wp-block-list">
<li>the five components, ORT mentions in its README,</li>



<li>the data they generate, and</li>



<li>how they use the output of their predecessors.</li>
</ul>



<p>Using this outline, we can now exemplify some of …</p>



<h2 class="wp-block-heading">… and gaining experiences with ORT</h2>



<ul class="wp-block-list">
<li> First, <span style="color: #e20074;"><strong>DT</strong></span> noticed that it could not evaluate even the first and most simple test case using the GNU Autotools </li>



<li> Second, DT had to learn that in cooperation with Gradle, ORT — for the moment — can not decide which of the found licenses is the default license.</li>



<li> Third, DT noticed that the standard templates included in ORT reader follow the principle of over fulfillment, the principle of over-fulfilling the license requirements. </li>
</ul>



<p>What does the last point mean? If you have a software project completely and exclusively licensed under the MIT license, then it is sufficient to bundle the license text and its embedded copyright line with the package for making it compliantly distributable. Tools that follow the <em>principle of over-fulfillment</em> would also add the artifacts created based on the GPL requirements, such as ‘all copyright headers of all files’ and so on.</p>



<p>Many approaches apply the <em>principle of over-fulfillment</em> — and use a problematic strategy:</p>



<ul class="wp-block-list">
<li>On the one hand, the distributors must correctly create the required compliance artifacts. If they create them incorrectly, they have to expect that someone will approach them about it.</li>



<li>On the other hand, the surplus compliance artifacts could overwrite or lever out the essential artifacts.</li>
</ul>



<p>Fortunately, ORT follows the design principle to make everything configurable and extendable, which allows <span style="color: #e20074;"><strong>DT</strong></span> to adapt its needs in three ways:</p>



<h2 class="wp-block-heading">Improving ORT</h2>



<ul class="wp-block-list">
<li><span style="color: #e20074;"><strong>Deutsche Telekom</strong></span> plans to implement and give back to ORT an evaluation technique of the <em>Autotools</em> scripts. </li>



<li>It will define, implement, and give upstream to ORT a generally usable strategy to determine the default license of a package. </li>
</ul>



<h2 class="wp-block-heading">Extending the case structure</h2>



<ul class="wp-block-list">
<li><span style="color: #e20074;"><strong>DT</strong></span> will define more test cases according to the multi-dimensional room: complexity, programming language, and dependency manager.</li>
</ul>



<h2 class="wp-block-heading">Defining an <span style="color: #e20074;">O</span>pen <span style="color: #e20074;">S</span>ource <span style="color: #e20074;">C</span>ompliance <span style="color: #e20074;">a</span>rtifact <span style="color: #e20074;">k</span>nowledge <span style="color: #e20074;">e</span>ngine</h2>



<ul class="wp-block-list">
<li><span style="color: #e20074;"><strong>DT</strong></span> develops an intelligent component into which it embeds the Open Source License Compliance knowledge in a declarative manner by
<ul class="wp-block-list">
<li>adding respective writers into ORT</li>



<li>adding a FOSS compliance domain-specific language realized on the base of Eclipse, XText</li>



<li>adding a respective compliance artifact composer based on XTend.</li>
</ul>
</li>
</ul>



<p>DT names this new component of and for <em>Open Source Compliance Chains</em> <span style="color: #e20074;"><strong>OSCake</strong></span> — the <em><span style="color: #e20074;"><strong>O</strong></span>pen <span style="color: #e20074;"><strong>S</strong></span>ource <span style="color: #e20074;"><strong>C</strong></span>ompliance <span style="color: #e20074;"><strong>a</strong></span>rtifact <span style="color: #e20074;"><strong>k</strong></span>nowledge <span style="color: #e20074;"><strong>e</strong></span>ngine</em> -,  and develops it under the terms of the Eclipse Public License 2.0</p>



<p><span style="color: #e20074;"><strong>OSCake</strong></span> shall close the gaps evoked by Open Source scanning tools that follow the principle of compliance over-fulfillment. It will take Open Source Compliance collections and deliver Open Source Compliance Files that really fit the requirements of the involved Open Source Licenses and their contexts. OSCake will become an agnostic compliance knowledge engine; it will not depend on a specific scanning tool but only on an error-tolerant input format. For being able to offer these features, OSCake will have an internal structure:</p>



<h2 class="wp-block-heading">Fazit</h2>



<p>TDOSCA and OSCake establish a promising goal set for the company itself as well as for the community and other commercial approaches:</p>



<ul class="wp-block-list">
<li><span style="color: #e20074;"><strong>DT</strong></span> indeed wants to set up a practically usable FOSS compliance toolchain that automatically generates the compliance artifacts we need.</li>



<li><span style="color: #e20074;"><strong>DT</strong></span> wants to reduce the manual work as far as possible.</li>



<li>And <span style="color: #e20074;"><strong>DT</strong></span> develops this chain (and its components) under the control of TDOSCA: the project to develop Test-Driven Open Source Compliance Artifact Gatherers and Compilers — including our own tool ‘OSCake’.</li>
</ul>



<p>And it is an outstanding aspect that DT is going to develop both parts under the umbrella of <a href="https://www.openchainproject.org/">OpenChain</a> and its <a href="http://oss-compliance-tooling.org/">Open Chain Reference Tooling Workgroup</a>.</p>


  <hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-link"></i> And in what way is this …</h5>
  <p class="myPageContext">… part of the overarching topic <i class="fa-brands fa-linux"></i> 
  FOSS <i class="fa-brands fa-osi"></i> Compliance? 
  For fulfilling the requirements of <a href="https://opensource.org/licenses/">FOSS licenses</a>, 
  we have to consider <a href="http://fodina.de/jniz/">specific</a> individual 
  <a href="http://fodina.de/yocto-iot-gplv3/">cases</a> as well as 
  <a href="http://fodina.de/lilypond-gpl/">side effects</a> — for 
  <a href="http://fodina.de/license-compliant-javascript/">software</a>, 
  <a href="http://fodina.de/image-databases/">pictures</a>, or documents. 
  We should unhide <a href="http://fodina.de/cc-by-trolls/">trends</a> and write 
  <a href="http://fodina.de/bosl-3-0/">guidelines</a>. Above all, however, we must 
  drive forward the <a href="http://fodina.de/tdosca/">automation of license fulfillment</a>, 
  make our <a href="http://fodina.de/oslic/">licensing knowledge</a> freely available, 
  cast it into <a href="http://fodina.de/oscad/">smaller tools</a>, and 
  <a href="http://fodina.de/oscake/">bring it into larger systems</a>: Because FOSS 
  thrives on freedom through license fulfillment, large and small. 
  That’s what also this article is about.</p>
  <hr class="wp-block-separator has-alpha-channel-opacity">



<ul class="wp-block-list">
<li><span><span style="color: #e20074;"><strong>OSLiC</strong></span> sources: <a href="https://github.com/telekom/oslic">https://github.com/telekom/oslic</a></span></li>



<li><span><span style="color: #e20074;"><strong>OSLiC</strong></span> homepage: <a href="http://telekom.github.io/oslic/" title="http://telekom.github.io/oslic/">http://telekom.github.io/oslic/</a></span></li>



<li><span><span style="color: #e20074;"><strong>OSLiC</strong></span> version 1.0.2: <a href="https://telekom.github.io/oslic/releases/oslic.pdf" title="https://telekom.github.io/oslic/releases/oslic.pdf">https://telekom.github.io/oslic/releases/oslic.pdf</a></span></li>



<li><span><span style="color: #e20074;"><strong>OSCAd</strong></span> sources: <a href="https://github.com/telekom/oscad" title="https://github.com/telekom/oscad">https://github.com/telekom/oscad</a></span></li>



<li><span><span style="color: #e20074;"><strong>OSCAd</strong></span> homepage: <a href="https://telekom.github.io/oscad/" title="https://telekom.github.io/oscad/">https://telekom.github.io/oscad/</a></span></li>



<li><span><span style="color: #e20074;"><strong>OSCAd</strong></span> instance: <a href="http://oscad.fodina.de/" title="http://oscad.fodina.de/">http://oscad.fodina.de/</a></span></li>



<li>OpenChain homepage: <a href="https://www.openchainproject.org/" title="https://www.openchainproject.org/">https://www.openchainproject.org/</a></li>



<li>Respective Linux Foundation project page: <a href="https://www.linuxfoundation.org/" title="https://www.linuxfoundation.org/projects/security-compliance/">https://www.linuxfoundation.org/projects/security-compliance/</a></li>



<li>Introduction into the Open Chain Reference Tooling Work Group: <a href="https://www.openchainproject.org/news/2020/03/15/openchain-reference-tooling-work-group-in-2020" title="https://www.openchainproject.org/news/2020/03/15/openchain-reference-tooling-work-group-in-2020">https://www.openchainproject.org/news/2020/03/15/openchain-reference-tooling-work-group-in-2020</a></li>



<li>Open Chain Reference Tooling Work Group homepage: <a href="http://oss-compliance-tooling.org/" title="http://oss-compliance-tooling.org/">http://oss-compliance-tooling.org/</a></li>



<li>Existing Open Source license compliance tools: <a href="http://oss-compliance-tooling.org/Tooling-Landscape/OSS-Based-License-Compliance-Tools/" title="http://oss-compliance-tooling.org/Tooling-Landscape/OSS-Based-License-Compliance-Tools/">http://oss-compliance-tooling.org/Tooling-Landscape/OSS-Based-License-Compliance-Tools/</a></li>



<li><span style="color: #1bada2;"><strong>O</strong></span>pen-source <span style="color: #1bada2;"><strong>R</strong></span>eview <span style="color: #1bada2;"><strong>T</strong></span>oolkit: <a href="https://github.com/oss-review-toolkit/ort" title="https://github.com/oss-review-toolkit/ort">https://github.com/oss-review-toolkit/ort</a></li>



<li><span style="color: #e20074;"><strong>T</strong></span>est <span style="color: #e20074;"><strong>D</strong></span>riven <span style="color: #e20074;"><strong>O</strong></span>pen <span style="color: #e20074;"><strong>S</strong></span>ource <span style="color: #e20074;"><strong>C</strong></span>ompliance <span style="color: #e20074;"><strong>I</strong></span>nitiative: <a href="https://github.com/Open-Source-Compliance/tdosca" title="https://github.com/Open-Source-Compliance/tdosca">https://github.com/Open-Source-Compliance/tdosca</a></li>



<li><span style="color: #e20074;"><strong>O</strong></span>pen <span style="color: #e20074;"><strong>S</strong></span>ource <span style="color: #e20074;"><strong>C</strong></span>ompliance <span style="color: #e20074;"><strong>a</strong></span>rtifact <span style="color: #e20074;"><strong>k</strong></span>nowledge <span style="color: #e20074;"><strong><span>e</span></strong></span>ngine: <a href="https://github.com/Open-Source-Compliance/OSCake" title="https://github.com/Open-Source-Compliance/OSCake">https://github.com/Open-Source-Compliance/OSCake</a></li>



<li>Open Compliance Summit 2020: <a href="https://events.linuxfoundation.org/open-compliance-summit/program/schedule/" title="https://events.linuxfoundation.org/open-compliance-summit/program/schedule/">https://events.linuxfoundation.org/open-compliance-summit/program/schedule/</a></li>
</ul>
<p>The post <a href="https://fodina.de/tdosca/">Automating FOSS Compliance: TDOSCA &amp; OSCake</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/tdosca/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
