<?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>Compliance Archives - FODINA 4 FOSS</title>
	<atom:link href="https://fodina.de/category/foss/compliance/feed/" rel="self" type="application/rss+xml" />
	<link>https://fodina.de/category/foss/compliance/</link>
	<description>a treasure trove for free software, techniques, and ideas</description>
	<lastBuildDate>Mon, 13 May 2024 10:11:23 +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>Cookies — properly managed by bootScore</title>
		<link>https://fodina.de/properly-managed-cookies/</link>
					<comments>https://fodina.de/properly-managed-cookies/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Wed, 04 Oct 2023 19:01:35 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bootScore]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://127.0.0.1/wpd.fd/?p=7709</guid>

					<description><![CDATA[<p>Displaying an appropriate cookie dialog is one thing. Giving it a real meaning is another. Because asking permission alone is not enough. We also need to evaluate the responses: We must only store those cookies on our reader’s computers they — or the law — have consented to. A JavaScript function that implements this requirement [&#8230;]</p>
<p>The post <a href="https://fodina.de/properly-managed-cookies/">Cookies — properly managed by bootScore</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Displaying an appropriate cookie dialog is one thing. Giving it a real meaning is another. Because asking permission alone is not enough. We also need to evaluate the responses: We must only store those cookies on our reader’s computers they — or the law — have consented to. A JavaScript function that implements this requirement sets the semantics of the cookie dialog. Based on such a function, we use properly managed cookies.<span id="more-7709"></span></p>



<p>The plugin <a href="https://bootscore.me/documentation/plugin/bs-cookie-settings/">bs-cookie-settings</a> itself only provides us with the cookie query. <a href="https://fodina.de/properly-used-cookies/">How to activate this</a>, I had already described in a previous post. However, the bootScore developers leave the implementation of the corresponding semantics to the <a href="https://github.com/orgs/bootscore/discussions/559">respective web designer</a>. Here is a variant that can be freely reused:</p>



<p class="has-text-align-right"></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/sauberes-cookie-management">de</a> ]</div></div></div></div>



<h2 class="wp-block-heading"><i class=" fa-regular fa-face-smile"></i> Solution</h2>



<ul class="wp-block-list">
<li>Download the <a href="https://github.com/js-cookie/js-cookie">JS cookie library</a> from <a href="https://www.cdnpkg.com/js-cookie/file/js.cookie.min.js/">cdnpkg.com</a> (or wherever) and place it (unpacked) under the name   <code>js/js.cookie.min.js</code>  into your child-theme folder.</li>



<li>In your file <code>functions.php</code> extend the function <code>bootscore_child_enqueue_styles()</code> by the line</li>
</ul>



<pre class="wp-block-code"><code>wp_enqueue_script('js-cookie',get_stylesheet_directory_uri().'/js/js-cookie-min.js', false, '', true););</code></pre>



<ul class="wp-block-list">
<li>Expand the file <code>js/custom.js</code> of your child theme in the following manner:</li>
</ul>



<pre class="wp-block-code"><code>jQuery(function ($) {

  $(document).ready(function(){
    const bsCookieSettings='bs_cookie_settings';
    const analytics = 'analytics';
    const advertising = 'advertising';
    const analyticDemoCookie='bsAnalyticCookie';
    const advertisingDemoCookie='bsAdvertisingCookie';
    const necessaryDemoCookie='bsNecessaryCookie';
    const demoCookieValue='demo-cookie';

    // alert("adding cookie writing algorithm");
    const bsv=Cookies.get(bsCookieSettings);
    if (bsv) {
      const allowedCookies=JSON.parse(bsv);
      // alert(allowedCookies.level);

      if (allowedCookies.level.includes(analytics)) {
        // alert("writing analytic cookies");
        if (!(Cookies.get(analyticDemoCookie))) { 
          Cookies.set(analyticDemoCookie, demoCookieValue, { expires: 100, path: '/' });
        };
      };
      if (allowedCookies.level.includes(advertising)) { 
        // alert("writing advertising cookies"); 
        if (!(Cookies.get(advertisingDemoCookie))) { 
          Cookies.set(advertisingDemoCookie, demoCookieValue, { expires: 10, path: '/' });
        };
      };
      // alert("writing necessary cookies"); 
      if (!(Cookies.get(necessaryDemoCookie))) { 
        Cookies.set(necessaryDemoCookie, demoCookieValue, { expires: 14, path: '/' });
      };
    };
  });

  // Do your other stuff here

}); // jQuery End</code></pre>



<h2 class="wp-block-heading"><i class=" fa-regular fa-lightbulb"></i> Background</h2>



<p>We could set and <a href="https://www.w3schools.com/js/js_cookies.asp">evaluate cookies with native JavaScript</a>. Nevertheless, it’s easier with ready-made libraries. WordPress already <a href="https://wpengine.com/resources/how-to-add-jquery-wordpress-theme/">brings jQuery with it</a>. For using that, bootScore offers us <a href="https://bootscore.me/documentation/bootscore-child/#JavaScript">a way to add custom JavaScript/jQuery functions</a> to our bootScore child theme.</p>



<p>There used to be a <a href="https://plugins.jquery.com/cookie">real jQuery-Cookie-Plugin</a> for cookie management. This has since been archived and migrated to <a href="https://github.com/js-cookie/js-cookie">an independent js-cookie-JavaScript</a> library. To use that, we must <a href="https://www.cdnpkg.com/js-cookie/file/js.cookie.min.js/">download it</a> and place it into the JavaScript folder of our child theme — under the name <code>js/js.cookie.min.js</code>. As described above, we also must enforce the function <code>bootscore_child_enqueue_styles()</code> of our file <code>functions.php</code> to load that library.</p>



<p>Eventually, we should implement an algorithm for evaluating the cookie settings by expanding the file <code>js/custom.js</code>.  That algorithm should work like this:</p>



<ul class="wp-block-list">
<li>First, we try to read the cookie bootScore-Cookie-plugin stores under the name <code>bs_cookie_settings</code>.</li>



<li>If it doesn’t exist yet, our reader hasn’t agreed to use cookies. So we are not allowed to write any yet.<sup><a href="https://fodina.de/properly-managed-cookies/#footnote_0_7709" id="identifier_0_7709" class="footnote-link footnote-identifier-link" title="Yes, formally we may write the technically necessary cookies without our reader's consent. But before we do that, we must inform her that we are going to do so. And the only way to convince ourselves that she has indeed read it is to wait for the written cookie.">1</a></sup></li>



<li>Once our reader has ‘confirmed’ the cookie dialog to whatever extent, the bs cookie plugin stores the cookie <code>bs_cookie_settings</code>. Its value contains a JSON object:</li>
</ul>



<pre class="wp-block-code"><code>{  "level": 
    [   "necessary",
        "analytics",
        "advertising"
    ],
    "revision":0,
    "data":null,
    "rfc_cookie":false
}</code></pre>



<ul class="wp-block-list">
<li>Thus, we must parse that JSON object before we can — on the JavaScript level — access the list of allowed cookie groups via <code>allowedCookies.level</code> and use the method <code>includes</code> of a list object to query which of the cookie groups <em>necessary</em>, <em>analytics, </em>and /or <em>advertising </em>our reader has allowed us to write.</li>



<li>And for each allowed group we now may write the corresponding cookies.<sup><a href="https://fodina.de/properly-managed-cookies/#footnote_1_7709" id="identifier_1_7709" class="footnote-link footnote-identifier-link" title="whereby we refer to the legal permission for the technically necessary cookies">2</a></sup></li>
</ul>



<p>And a last hint: JavaScript modifies pages dynamically. But the cache stores the respective results. Thus, sometimes it’s helpful if we delete the cache for getting the results of our modifications run.</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-road"></i> And how does this …</h5>
  <p class="myPageContext">… support our 
  <a href="http://fodina.de/bootscore-migration/">migration</a> to 
  <a href="https://bootscore.me/">bootScore</a>? Well,
  besides her <a href="http://fodina.de/pimp-your-bootscore/">normal design work</a>,
  the web-designer must deal with some legal requirements, as — for example — 
  those of the <a href="http://fodina.de/privacy-dsgvo/">DSGVO privacy</a>, of having a 
  <a href="http://fodina.de/properly-used-cookies/">cookie consent dialog</a> 
  and the respective <a href="http://fodina.de/properly-managed-cookies/">semantic</a>, 
  of having a <a href="http://fodina.de/ds-compliance/">data privacy page</a>,
  an <a href="http://fodina.de/imprint/">imprint</a>, 
  an <a href="http://fodina.de/picture-credits/">image reference page</a>, and
  a <a href="http://fodina.de/foss-compliance/">FOSS compliance page</a>.
  This post shall support you to manage your legal issues. 
  </p><hr class="wp-block-separator has-alpha-channel-opacity">

<ol class="footnotes"><li id="footnote_0_7709" class="footnote">Yes, formally we may write the technically necessary cookies without our reader’s consent. But before we do that, we must inform her that we are going to do so. And the only way to convince ourselves that she has indeed read it is to wait for the written cookie.</li><li id="footnote_1_7709" class="footnote">whereby we refer to the legal permission for the technically necessary cookies</li></ol><p>The post <a href="https://fodina.de/properly-managed-cookies/">Cookies — properly managed by bootScore</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/properly-managed-cookies/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cookies — properly used in bootScore</title>
		<link>https://fodina.de/properly-used-cookies/</link>
					<comments>https://fodina.de/properly-used-cookies/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Fri, 15 Sep 2023 10:03:01 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bootScore]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://127.0.0.1/wpd.fd/?p=7616</guid>

					<description><![CDATA[<p>Without permission, we may not write cookies to the hard disk of our reader. Because it belongs to her, not to us. By accessing our site, she has already implicitly given her consent to store our technically necessary cookies. Because they are technically necessary to read our post. But she must explicitly permit us to [&#8230;]</p>
<p>The post <a href="https://fodina.de/properly-used-cookies/">Cookies — properly used in bootScore</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.cookiebot.com/en/cookie-law/">Without permission, we may not write cookies to the hard disk of our reader</a>. Because it belongs to her, not to us. By accessing our site, she has already implicitly given her consent to store our technically necessary cookies. Because they are technically necessary to read our post. But she must explicitly permit us to save the other cookies on her computer before we are going to do so. Moreover, we must have enabled her to query what these cookies are for before we offer her to answer our request. That’s the meaning if we talk about properly used cookies.<span id="more-7616"></span></p>



<p class="has-text-align-right"></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/saubere-cookie-nutzung">de</a> ]</div></div></div></div>



<p>For this, <a href="https://bootscore.me/">bootScore</a> offers us a configurable <a href="https://bootscore.me/documentation/plugin/bs-cookie-settings/">cookie approval dialogue</a> evaluated by the <a href="https://bootscore.me/#download">bsCookie-plugin</a>:</p>



<h2 class="wp-block-heading"><i class=" fa-regular fa-face-smile"></i> Solution</h2>



<ul class="wp-block-list">
<li>Download <a href="https://bootscore.me/#download">bsCookie</a>.</li>



<li>Install the zip file via the plugin management of your WordPress backend.</li>



<li>Determine the cookies you want to install on your reader’s computer.<sup><a href="https://fodina.de/properly-used-cookies/#footnote_0_7616" id="identifier_0_7616" class="footnote-link footnote-identifier-link" title="We have to keep in mind that our plugins can also try to store cookies. So it's not enough to just look for the corresponding JavaScript commands in our own posts and pages">1</a></sup></li>



<li>Assign each of these cookies to one of the groups ‘necessary’<sup><a href="https://fodina.de/properly-used-cookies/#footnote_1_7616" id="identifier_1_7616" class="footnote-link footnote-identifier-link" title="Cookies that we assign to this group will lastly be placed on our reader's hard drive even without explicit consent, precisely because they are technically necessary. So we must be able to prove if necessary that these cookies are indeed technically necessary.">2</a></sup>, ‘advertising’ or ‘analytics’.</li>



<li>In the dialog ‘Appearance/Widgets’ drag a widget ‘Customer HTML’ into the widget group <em>Footer‑4</em>.</li>



<li>Enter the script lines into that sub-widget as offered by <a href="https://bootscore.me/documentation/plugin/bs-cookie-settings/">bsCookie documentation</a>.</li>



<li>For each of your plugins add an entry into the corresponding section.</li>



<li>Link your privacy page into the dialog by replacing <em>#yourprivacypolicy</em> accordingly.</li>



<li>Translate the texts into the language of your site (or create an additional entry according to your multilingual strategy).</li>
</ul>



<h2 class="wp-block-heading"><i class=" fa-regular fa-lightbulb"></i> Background</h2>



<p>Asking for permission to write cookies via a dialogue is only one side of the coin. Cookies can also store (personal) (identification) data. So, the respective web server can ask for that information and hand it over to third parties. Hence, we must mention such cookies in our <a href="https://fodina.de/ds-compliance/">data protection concept</a> additionally. To enable our readers to call this page directly from the cookie consent dialogue, the <em>bsCookie</em> dialogue text contains a link whose value <em>#yourprivacypolice</em> we should aling accordingly.</p>



<p>It has become a good tradition to group cookies functionally and to ask once for the complete group whether we may file the respective cookies. That’s legally not necessary: We could also let the use of cookies agree or disagree quite generally.<sup><a href="https://fodina.de/properly-used-cookies/#footnote_2_7616" id="identifier_2_7616" class="footnote-link footnote-identifier-link" title="However, greater granularity is in our interest. Because if a reader doesn't want one thing - e.g. advertising - she could still allow the other - e.g. analytics. That way, we would still learn at least a part of what we hoped to learn overall.">3</a></sup> Or we could make every single cookie selectable or deselectable — which would overload the dialogue.</p>



<p>However, at first, we need to know which cookies our site writes and what the cookies actually do. Our browsers can support us. For example, by means of its ‘Privacy and Security’ dialog. Or with the help of a browser plugin<sup><a href="https://fodina.de/properly-used-cookies/#footnote_3_7616" id="identifier_3_7616" class="footnote-link footnote-identifier-link" title="e.g. with the Cookie Editor">4</a></sup>, which shows directly for each called site/page, which cookies have been written by it. But what our cookies do, we have to determine separately.</p>



<p>Once we have grouped our cookies functionally, we only need to create the appropriate groups as sections in the bsCookie dialog. Then we must insert for each cookie — associated with that group — an entry in the respective section. For the three common groups ‘necessary’, ‘advertising’, and ‘analytics’ <em>bsCookie</em> already provides the respective code. If these groups fit our needs, it is sufficient for us  to describe the cookies in and with the single entries. Assuming we wanted to get permission to write the three cookies <em>necessaryBsCookie</em>, <em>advertisingBsCookie</em>, and <em>analizingBsCookie</em>, the JavaScript code of the bsCookie consent dialogue should look like this:</p>



<pre class="wp-block-code"><code>&lt;script&gt;
  // Init
  window.addEventListener('load', function () {

    // obtain plugin
    var cc = initCookieConsent();

    // run plugin with your configuration
    cc.run({
      current_lang: 'en',
      autoclear_cookies: true,
      page_scripts: true,

      languages: {
        'en': {
          consent_modal: {
            title: 'Cookie Consent Request',
            description: 
'We use cookies to remember and reuse your preferences for future visits. By clicking “Accept all”, you permit us to use all cookies, technically necessary as well as functionally helpful. By clicking “necessary only”, you forbid us to use the functionally helpful, but technically not necessary cookies. For a more detailed consent, visit &lt;a data-bs-toggle="modal" href="#bs-cookie-modal"&gt;Cookie Settings&lt;/a&gt;.',
            primary_btn: {
              text: 'accept all',
              role: 'accept_all'
            },
            secondary_btn: {
              text: 'necessary only',
              role: 'accept_necessary'
            }
          },

          settings_modal: {
            title: 'Cookie settings',
            save_settings_btn: 'Save settings',
            accept_all_btn: 'accept all',
            reject_all_btn: 'necessary only',
            close_btn_label: 'close',
            cookie_table_headers: [
              { col1: 'Name' },
              { col2: 'Domain' },
              { col3: 'Expiration' },
              { col4: 'Description' }
            ],
            blocks: [
              {
                title: 'Cookie usage',
                description: 
'We use cookies to provide core website functions and to enhance your reading experience. For each category, you can choose to use them or not. For more details about cookies and other sensitive data, please read our &lt;a href="https://karsten-reincke.de/datenschutz"&gt;Privacy Policy&lt;/a&gt;.'
              }, {
                title: 'Necessary',
                description: 
'These cookies are essential for our website. Without them, the website would not work properly',
                toggle: {
                  value: 'necessary',
                  enabled: true,
                  readonly: true          // cookie categories with readonly=true are all treated as "necessary cookies"
                },
                cookie_table: [
                  {
                    col1: 'bs_cookie_settings',
                    col2: 'bootScore.me',
                    col3: 'deleted if your session becomes invalid',
                    col4: 
'cookie into which bootScore and the plugin bsCookies stores your cookie preferences',
                    is_regex: false
                  },
                  {
                    col1: 'nec­es­saryB­sCook­ie', 
                    col2: 'https://karsten-reincke.de',
                    col3: 'next 100 days',
                    col4: 'demo cookie of "pimp your BootScore"',
                    is_regex: false
                  },                 
                ]
              }, {
                title: 'Analytics',
                description: 
'These cookies allow the website to remember the choices you have made in the past',
                toggle: {
                  value: 'analytics',     // your cookie category
                  enabled: false,
                  readonly: false
                },
                cookie_table: [           // list of all expected cookies
                  {
                    col1: 'anal­iz­ing­B­sCook­ie',         
                    col2: 'https://karsten-reincke.de',
                    col3: 'next 10 Days',
                    col4: 'demo cookie of "pimp your BootScore"',
                    is_regex: false
                  }
                ]
              }, {
                title: 'Advertising',
                description: 
'These cookies collect information about how you use the website, which pages you visited and which links you clicked on. All data is anonymized and cannot be used to identify you',
                toggle: {
                  value: 'advertising',
                  enabled: false,
                  readonly: false
                },
                cookie_table: [             // list of all expected cookies
                  {
                    col1: 'adver­tis­ing­B­sCook­ie',
                    col2: 'https://karsten-reincke.de',
                    col3: '2 weeks',
                    col4: 'demo cookie of pimp your BootScore',
                    is_regex: false
                  }
                ]
              }, {
                title: 'More information',
                description: 
'For further questions concerning our data management, feel free to &lt;a href="https://karsten-reincke.de/impressum"&gt;contact us&lt;/a&gt;.',
              },

            ]
          }

        }
      }

    });
  });
&lt;/script&gt;</code></pre>



<p>Entering the information into the code of the cookie consent dialogue is one thing. Activating the code is another. To do that, we put the customized <em><a href="https://bootscore.me/documentation/plugin/bs-cookie-settings/">bs-cookie-settings</a></em> JavaScript code into a <em>Custom HTML element</em> that we added to the <em>Footer 4</em> widget. In principle, we could embed the <em>Custom HTML element</em> in other widgets as well. However, <em>bsCookie</em> suggests <em>Footer 4</em> because the JavaScript code should be embedded at the end of a page. Anyway, all pages using a template containing the  <em>Footer 4</em> widget will then display the cookie. That’s the method of how we solve the problem of ‘deep links’.<sup><a href="https://fodina.de/properly-used-cookies/#footnote_4_7616" id="identifier_4_7616" class="footnote-link footnote-identifier-link" title="We must keep in mind that our readers could directly call links to deeper embedded pages. Even in this case, we may only write cookies, if we are allowed to do so.">5</a></sup></p>



<p>That left us with three final tasks:</p>



<ul class="wp-block-list">
<li>First, we will often want to linguistically customize our consent dialogue as well. For that purpose, we can modify the JavaScript code mentioned above.</li>



<li>Secondly, the dialog color is determined by the definition of the <a href="https://fodina.de/customized-colors/">functional color</a> $warning. Those who nevertheless want to customize the dialog may use her file  &lt;code&gt;_bscore_custom.scss&lt;/code&gt;: <pre class="wp-block-code"><code><br>// design the bsCookie-Dialog<br>#c-inr {<br>  border-color: darkblue;<br>  border-width: 2px;<br>  border-style: solid;<br>  background-color: #eef;<br>  color: blue($color: #000000);<br>  padding: 5px;<br>}<br><br>#c-p-bn {<br>  border-color: darkblue;<br>}<br><br>#c-s-bn {<br>  border-color: darkblue;<br>}<br> <br></code></pre></li>



<li>Third, we need to implement the semantics of the cookie consent dialog. If we want to walk the talk, we need to implement our ‘storing the cookie JavaScript code’ in a way that it writes only the technically necessary cookies without consent, and that it otherwise stores only the cookies from the groups for which there is consent.</li>
</ul>



<p>I will take up this last point in a separate post …</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-road"></i> And how does this …</h5>
  <p class="myPageContext">… support our 
  <a href="http://fodina.de/bootscore-migration/">migration</a> to 
  <a href="https://bootscore.me/">bootScore</a>? Well,
  besides her <a href="http://fodina.de/pimp-your-bootscore/">normal design work</a>,
  the web-designer must deal with some legal requirements, as — for example — 
  those of the <a href="http://fodina.de/privacy-dsgvo/">DSGVO privacy</a>, of having a 
  <a href="http://fodina.de/properly-used-cookies/">cookie consent dialog</a> 
  and the respective <a href="http://fodina.de/properly-managed-cookies/">semantic</a>, 
  of having a <a href="http://fodina.de/ds-compliance/">data privacy page</a>,
  an <a href="http://fodina.de/imprint/">imprint</a>, 
  an <a href="http://fodina.de/picture-credits/">image reference page</a>, and
  a <a href="http://fodina.de/foss-compliance/">FOSS compliance page</a>.
  This post shall support you to manage your legal issues. 
  </p><hr class="wp-block-separator has-alpha-channel-opacity">

<ol class="footnotes"><li id="footnote_0_7616" class="footnote">We have to keep in mind that our plugins can also try to store cookies. So it’s not enough to just look for the corresponding JavaScript commands in our own posts and pages</li><li id="footnote_1_7616" class="footnote">Cookies that we assign to this group will lastly be placed on our reader’s hard drive even without explicit consent, precisely because they are technically necessary. So we must be able to prove if necessary that these cookies are indeed technically necessary.</li><li id="footnote_2_7616" class="footnote">However, greater granularity is in our interest. Because if a reader doesn’t want one thing — e.g. advertising — she could still allow the other — e.g. analytics. That way, we would still learn at least a part of what we hoped to learn overall.</li><li id="footnote_3_7616" class="footnote">e.g. with the <a href="https://cookie-editor.cgagnier.ca/">Cookie Editor</a></li><li id="footnote_4_7616" class="footnote">We must keep in mind that our readers could directly call links to deeper embedded pages. Even in this case, we may only write cookies, if we are allowed to do so.</li></ol><p>The post <a href="https://fodina.de/properly-used-cookies/">Cookies — properly used in bootScore</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/properly-used-cookies/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using JavaScript Compliantly</title>
		<link>https://fodina.de/license-compliant-javascript/</link>
					<comments>https://fodina.de/license-compliant-javascript/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Wed, 17 May 2023 08:26:57 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Licensing]]></category>
		<guid isPermaLink="false">http://127.0.0.1/wpd.fd/?p=6204</guid>

					<description><![CDATA[<p>To speed up deliverability, the developers mostly distribute compressed JavaScript libraries that do not contain any whitespaces, line feeds, and comments. They have minified the libs. As a result, they usually contain only very rudimentary license information — at least not the license text itself. But all FOSS licenses require us to ship some compliance [&#8230;]</p>
<p>The post <a href="https://fodina.de/license-compliant-javascript/">Using JavaScript Compliantly</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>To speed up deliverability, the developers mostly distribute compressed JavaScript libraries that do not contain any whitespaces, line feeds, and comments. They have <a href="https://kinsta.com/blog/minify-javascript/">minified</a> the libs. As a result, they usually contain only very rudimentary license information — at least not the license text itself. But all FOSS licenses require us to ship some compliance artifacts with the code — especially the license text. This is the challenge for using JavaScript compliantly — in <em>bootScore</em> and elsewhere:<span id="more-6204"></span></p>



<p class="has-text-align-right"></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/lizenzkonformes-javascript">de</a> ]</div></div></div></div>



<h2 class="wp-block-heading"><i class=" fa-regular fa-face-smile"></i> Solution</h2>



<ul class="wp-block-list">
<li>Use the <em>Bootstrap</em> JavaScript library as delivered by <em>bootScore</em></li>



<li>Use the JavaScript libraries as delivered by <em>WordPress</em></li>



<li>Create a table containing the JavaScript compliance information</li>



<li>For each JavaScript library delivered by <em>bootScore</em> or <em>WordPress</em> create a respective row in your JS table.</li>



<li>Embed this table into your <em>Open Source Compliance Page</em></li>



<li>Make this <em>Open Source Compliance Page</em> accessible by the footer of your pages</li>
</ul>



<h2 class="wp-block-heading"><i class=" fa-regular fa-lightbulb"></i> Background</h2>



<p><a href="https://github.com/bootscore/bootscore">bootSCore</a> contains some JS components. For example, its own unfolded JavaScript libraries<sup><a href="https://fodina.de/license-compliant-javascript/#footnote_0_6204" id="identifier_0_6204" class="footnote-link footnote-identifier-link" title="cf. ./bootscore/js/theme.js">1</a></sup> — implicitly licensed under the MIT license but without any explicit licensing statement — and the minified Bootstrap JavaScript library<sup><a href="https://fodina.de/license-compliant-javascript/#footnote_1_6204" id="identifier_1_6204" class="footnote-link footnote-identifier-link" title="cf. ./bootscore/js/lib/bootstrap.bundle.min.js">2</a></sup> — explicitly licensed under the MIT by a respective licensing statement. But none of them contain the license text itself. </p>



<p>Also, WordPress brings with it some own and some minified 3rd party JavaScript libraries<sup><a href="https://fodina.de/license-compliant-javascript/#footnote_2_6204" id="identifier_2_6204" class="footnote-link footnote-identifier-link" title="cf. https://codex.wordpress.org/Javascript_Reference respectively ./wp-includes/js">3</a></sup>, like the jQuery library<sup><a href="https://fodina.de/license-compliant-javascript/#footnote_3_6204" id="identifier_3_6204" class="footnote-link footnote-identifier-link" title="cf. wp-includes/js/jquery/">4</a></sup> that is licensed under the MIT and contains a respective licensing statement, but does not cover the license text itself. Regardless, of whom the site owner has got these libs — from bootScore or WordPress -, eventually it is she who has to fulfill the license requirements because it is her system that distributes the JavaScript libraries to her readers.</p>



<p>But what is actually the challenge?</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/05/js.jpg" data-fancybox><img decoding="async" src="https://fodina.de/wp-content/uploads/2023/05/js-300x300.jpg" alt="Riding a dead horse" width="240"></a></figure></div>



<p>Like the JavaScript libraries of <em>Bootstrap</em> and <em>jQuery</em>, most JS libraries are MIT licensed. It requires that the copyright line and the license text are distributed together with the open-source program. “The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.“<sup><a href="https://fodina.de/license-compliant-javascript/#footnote_4_6204" id="identifier_4_6204" class="footnote-link footnote-identifier-link" title="cf. MIT License">5</a></sup></p>



<p>For (L|A)GPL-licensed JavaScript libraries it is nearly the same. These licenses permit the distribution of the source code “provided that one conspicuously and appropriately publishes on each copy an appropriate copyright notice and disclaimer of warranty […] and gives any other recipients of the Program a copy of this License along with the Program”.<sup><a href="https://fodina.de/license-compliant-javascript/#footnote_5_6204" id="identifier_5_6204" class="footnote-link footnote-identifier-link" title="pars pro toto cf. GPL-2.0. Additionally, the (A)GPL requires that we license our code that uses the (A)GPL-licensed library, etc. also under the (A)GPL (copyleft effect). But that's not the point in this context.">6</a></sup></p>



<p>So, we see a contradiction between the claim of the licenses and the everyday practice. On the one side, a browser not only loads down the page text (HTML) but also the JavaScript library. This download distributes the code and hence triggers the necessity to fulfill the open-source license requirements. On the other side, usually, the compressed libraries — although as a package often offered by the authors — no longer contain the required license information: the smaller the libs, the faster the machine can display the site using that libs.</p>



<p>As site owners, we have two options to deal with this challenge. Either we subsequently (and (semi) manually) heal the packages we implicitly have taken over by using WordPress and <em>bootScore</em>. Or we use them as we’ve got them. It’s clear: Healing would imply that we redo that job whenever we update WordPress or bootScore. So, we tend to go the other way.</p>



<p>The solution is this:</p>



<p>Whenever developers decide to distribute minified JavaScript libraries, they also assume that their ‘customers’ use their work in that version. That is a reasonable assumption. So, we may derive that they implicitly permit that kind of use even if it violated the license they’ve chosen. Nevertheless, we should offer our users another option to get the required information. A substitute for bundling the license text, the copyright information, etc. with the JavaScript libraries themselves. However, we must take care only to include the minified JavaScript libraries the developers themselves have provided. In the case of the <em>Bootstrap</em>-JS-Lib in <em>bootScore</em> and the <em>Jquery</em>-JS-Lib etc. in <em>WordPress,</em> we may assume that they did so.</p>



<p>If we apply this process to our 3rd. party JS libraries, we have a strong argument for our position in case of a legal dispute — I’ve never heard of one — and we’re in good company: Even the FSF is proposing to do so.<sup><a href="https://fodina.de/license-compliant-javascript/#footnote_6_6204" id="identifier_6_6204" class="footnote-link footnote-identifier-link" title="cf. https://www.gnu.org/licenses/javascript-labels.html, https://www.gnu.org/licenses/javascript-labels-rationale.html, and https://www.iusmentis.com/computerprograms/opensourcesoftware/license-notices-web-applications">7</a></sup> And the FSF really doesn’t have a reputation for taking license compliance lightly.</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">
<ol class="footnotes"><li id="footnote_0_6204" class="footnote">cf. <code>./bootscore/js/theme.js</code></li><li id="footnote_1_6204" class="footnote">cf. <code>./bootscore/js/lib/bootstrap.bundle.min.js</code></li><li id="footnote_2_6204" class="footnote">cf. <a href="https://codex.wordpress.org/Javascript_Reference">https://codex.wordpress.org/Javascript_Reference</a> respectively <code>./wp-includes/js</code></li><li id="footnote_3_6204" class="footnote">cf. <code>wp-includes/js/jquery/</code></li><li id="footnote_4_6204" class="footnote">cf. <a href="https://opensource.org/license/mit/">MIT License</a></li><li id="footnote_5_6204" class="footnote">pars pro toto cf. <a href="https://opensource.org/license/gpl-2-0/">GPL‑2.0</a>. Additionally, the (A)GPL requires that we license our code that uses the (A)GPL-licensed library, etc. also under the (A)GPL (copyleft effect). But that’s not the point in this context.</li><li id="footnote_6_6204" class="footnote">cf. <a href="https://www.gnu.org/licenses/javascript-labels.html">https://www.gnu.org/licenses/javascript-labels.html</a>, <a href="https://www.gnu.org/licenses/javascript-labels-rationale.html">https://www.gnu.org/licenses/javascript-labels-rationale.html</a>, and <a href="https://www.iusmentis.com/computerprograms/opensourcesoftware/license-notices-web-applications">https://www.iusmentis.com/computerprograms/opensourcesoftware/license-notices-web-applications</a></li></ol><p>The post <a href="https://fodina.de/license-compliant-javascript/">Using JavaScript Compliantly</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/license-compliant-javascript/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Data Privacy, DSGVO, and Cookies</title>
		<link>https://fodina.de/privacy-dsgvo/</link>
					<comments>https://fodina.de/privacy-dsgvo/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Fri, 21 Apr 2023 09:33:10 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bootScore]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://127.0.0.1/wpd.fd/?p=6073</guid>

					<description><![CDATA[<p>Often the website operator is told, that Data protection is complex and has to be organized by experts. But what if she doesn’t have the money for that? If it seems somehow nonsensical to shoot at a sparrow blog with the cannon of a paid team of experts? Then — maybe and with the help [&#8230;]</p>
<p>The post <a href="https://fodina.de/privacy-dsgvo/">Data Privacy, DSGVO, and Cookies</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Often the website operator is told, that Data protection is complex and has to be organized by experts. But what if she doesn’t have the money for that? If it seems somehow nonsensical to shoot at a sparrow blog with the cannon of a paid team of experts? Then — maybe and with the help of Google — she installs some popular WordPress plugins for data privacy and DSGVO and/or cookies — in the hope that all goes well. Or she investigates it in more detail. And in the end, she perhaps gathers rules of thumb, from which at least one well-workable way results. Here are my 3.7 rules of thumb, applied to my own <a href="https://fodina.de/ds-compliance/">data privacy file</a>:<span id="more-6073"></span></p>



<p class="has-text-align-right"></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/datenschutz-dsgvo">de</a> ]</div></div></div></div>



<h2 class="wp-block-heading"><i class=" fa-regular fa-face-smile"></i> Solution</h2>



<ul class="wp-block-list">
<li>I. Use only the personal data that you really need for the functioning of your system.</li>



<li>II. If you collect personal data, tell the owners,
<ul class="wp-block-list">
<li>that you are going to do so,</li>



<li>for what purpose you use the data,</li>



<li>what legal basis authorizes you to do so,</li>



<li>with whom you share the data,</li>



<li>how long you will store it,</li>



<li>how they can ask you which data you have stored over time</li>



<li>how they can have the data deleted again.</li>
</ul>
</li>



<li>III. If you store data on the computer of your users, which they did not request directly or indirectly, ask them beforehand for permission.</li>
</ul>



<h2 class="wp-block-heading"><i class=" fa-regular fa-lightbulb"></i> Background</h2>



<p>If I proceed according to this — so I make myself believe again and again — I will design my sites in a way that I avoid the roughest traps<sup><a href="https://fodina.de/privacy-dsgvo/#footnote_0_6073" id="identifier_0_6073" class="footnote-link footnote-identifier-link" title="cf. https://www.e-recht24.de/artikel/datenschutz/8451-hinweispflicht-fuer-cookies.html">1</a></sup> and errors<sup><a href="https://fodina.de/privacy-dsgvo/#footnote_1_6073" id="identifier_1_6073" class="footnote-link footnote-identifier-link" title="cf. https://www.ihk.de/halle/recht/datenschutz/sonstige-rechtsinformationen/cookie-banner-fuenf-fehler-die-sie-vermeiden-sollten--4854218">2</a></sup>. Because I always have one thing in mind: with a mere cookie banner it is not done:</p>



<ol class="wp-block-list">
<li>The first thing I consider is where my blog as a system collects personal data. The ones that I explicitly request in and with forms are the easiest for me to notice and remember. Here I know — qua office — what I do with them and to whom I pass them etc.</li>



<li>Furthermore, I am aware that IP addresses are also considered personal data — although the internet would not function without them.</li>



<li>Additionally, WordPress can collect, note, and send data to third parties — as well as the plugins I’ve activated, the JavaScript libraries I’ve installed, the Google fonts I’ve integrated, etc., etc.</li>



<li>Eventually, my commenters are usually made recognizable via the common Gravatar system.</li>
</ol>



<p>I have to sort out this mishmash:</p>



<ul class="wp-block-list">
<li>Rule (I) tells me that less is more: the fewer data I ask for and the fewer plug-ins I use, the leaner my data protection concept can be. So I clean out here, e.g. by treating productive and developing systems differently.</li>



<li>Rule (II) tells me that I must actually describe the remaining data sets in the data protection concept. So I also determine what data my plugins, font requests, and other technical components collect, how they store it, and where they pass it on.</li>



<li>Rule (III) tells me that I have to get permission to write files, i.e. cookies, to my user’s computer — either by law, as in the case of technically necessary cookies, or by consent of my user. And to get this consent, it is helpful to specify the purpose and effect.</li>
</ul>



<p></p>



<p>My next posts describe how I have implemented this in my <em>bootScore</em>-based site concretely.</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-road"></i> And how does this …</h5>
  <p class="myPageContext">… support our 
  <a href="http://fodina.de/bootscore-migration/">migration</a> to 
  <a href="https://bootscore.me/">bootScore</a>? Well,
  besides her <a href="http://fodina.de/pimp-your-bootscore/">normal design work</a>,
  the web-designer must deal with some legal requirements, as — for example — 
  those of the <a href="http://fodina.de/privacy-dsgvo/">DSGVO privacy</a>, of having a 
  <a href="http://fodina.de/properly-used-cookies/">cookie consent dialog</a> 
  and the respective <a href="http://fodina.de/properly-managed-cookies/">semantic</a>, 
  of having a <a href="http://fodina.de/ds-compliance/">data privacy page</a>,
  an <a href="http://fodina.de/imprint/">imprint</a>, 
  an <a href="http://fodina.de/picture-credits/">image reference page</a>, and
  a <a href="http://fodina.de/foss-compliance/">FOSS compliance page</a>.
  This post shall support you to manage your legal issues. 
  </p><hr class="wp-block-separator has-alpha-channel-opacity">

<ol class="footnotes"><li id="footnote_0_6073" class="footnote">cf. <a href="https://www.e-recht24.de/artikel/datenschutz/8451-hinweispflicht-fuer-cookies.html">https://www.e‑recht24.de/artikel/datenschutz/8451-hinweispflicht-fuer-cookies.html</a></li><li id="footnote_1_6073" class="footnote">cf. <a href="https://www.ihk.de/halle/recht/datenschutz/sonstige-rechtsinformationen/cookie-banner-fuenf-fehler-die-sie-vermeiden-sollten--4854218">https://www.ihk.de/halle/recht/datenschutz/sonstige-rechtsinformationen/cookie-banner-fuenf-fehler-die-sie-vermeiden-sollten–4854218</a></li></ol><p>The post <a href="https://fodina.de/privacy-dsgvo/">Data Privacy, DSGVO, and Cookies</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/privacy-dsgvo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Getting Nice Pictures — Where From, If Not Steal?</title>
		<link>https://fodina.de/image-databases/</link>
					<comments>https://fodina.de/image-databases/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Thu, 02 Mar 2023 22:18:31 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[Licensing]]></category>
		<guid isPermaLink="false">http://127.0.0.1/wpd.fd/?p=5636</guid>

					<description><![CDATA[<p>I love ZEN presentations. For that, you need pictures. Many pictures. Good pictures. Fortunately, it is technically easy to integrate photos from the internet into your own site. What is challenging, however, is getting nice pictures legally. Solution Background Images, photos, and logos are also subject to copyright law. Often also of the trademark law. [&#8230;]</p>
<p>The post <a href="https://fodina.de/image-databases/">Getting Nice Pictures — Where From, If Not Steal?</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I love ZEN presentations. For that, you need pictures. Many pictures. Good pictures. Fortunately, it is technically easy to <a href="https://fodina.de/blurred-featured-images/">integrate photos from the internet</a> into your own site. What is challenging, however, is getting nice pictures <a href="https://fodina.de/cc-by-trolls/">legally</a>.<span id="more-5636"></span></p>



<p class="has-text-align-right"></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/bilder-datenbanken">de</a> ]</div></div></div></div>



<h2 class="wp-block-heading"><i class=" fa-regular fa-face-smile"></i> Solution</h2>



<ul class="wp-block-list">
<li>First, use image databases whose pictures are released under the terms of the <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0 license</a>.<sup><a href="https://fodina.de/image-databases/#footnote_0_5636" id="identifier_0_5636" class="footnote-link footnote-identifier-link" title="We're allowed to use those for no consideration, after all.">1</a></sup> E.g. <a href="https://pxhere.com/">pxhere</a><sup><a href="https://fodina.de/image-databases/#footnote_1_5636" id="identifier_1_5636" class="footnote-link footnote-identifier-link" title="for licensing see https://pxhere.com/en/license">2</a></sup> or <a href="https://openclipart.org/">openclipart</a>.<sup><a href="https://fodina.de/image-databases/#footnote_2_5636" id="identifier_2_5636" class="footnote-link footnote-identifier-link" title="for licensing cf. https://openclipart.org/faq">3</a></sup></li>



<li>Then evaluate image databases whose pictures have been published under any different Creative Commons license. E.g. <a href="https://commons.wikimedia.org/">Wikimedia</a><sup><a href="https://fodina.de/image-databases/#footnote_3_5636" id="identifier_3_5636" class="footnote-link footnote-identifier-link" title="for licensing cf. https://commons.wikimedia.org/wiki/Commons:Licensing/de">4</a></sup>, <a href="https://www.flickr.com/creativecommons/">flicker.com/creativecommons</a> or <a href="https://www.piqs.de/">piqs.de</a></li>



<li>But avoid images that are licensed under a CC-??-NC-??<sup><a href="https://fodina.de/image-databases/#footnote_4_5636" id="identifier_4_5636" class="footnote-link footnote-identifier-link" title="for the layer model of CC licenses, see https://creativecommons.org/licenses/">5</a></sup> license.<sup><a href="https://fodina.de/image-databases/#footnote_5_5636" id="identifier_5_5636" class="footnote-link footnote-identifier-link" title="Because legally even the simplest blog can still be interpreted as a commercial enterprise.">6</a></sup></li>



<li>And meticulously fulfill the other conditions, such as attribution. A good place to do that is a page with image credits.</li>



<li>Finally, be careful if you use an image database that distributes its images under its own license, which is equivalent to a CC0 license, but excludes certain uses after all.<sup><a href="https://fodina.de/image-databases/#footnote_6_5636" id="identifier_6_5636" class="footnote-link footnote-identifier-link" title="Challengingly, these databases often allow commercial use, but at the same time prohibit the sale of the images, even in print, or their incorporation into other databases">7</a></sup>. E.g. <a href="https://www.pexels.com/" class="broken_link">pexel</a><sup><a href="https://fodina.de/image-databases/#footnote_7_5636" id="identifier_7_5636" class="footnote-link footnote-identifier-link" title="for licensing cf. https://www.pexels.com/license/">8</a></sup>, <a href="https://unsplash.com/">unsplash</a><sup><a href="https://fodina.de/image-databases/#footnote_8_5636" id="identifier_8_5636" class="footnote-link footnote-identifier-link" title="for licensing cf. https://unsplash.com/license">9</a></sup>, or <a href="https://pixabay.com/" class="broken_link">pixabay</a><sup><a href="https://fodina.de/image-databases/#footnote_9_5636" id="identifier_9_5636" class="footnote-link footnote-identifier-link" title="for licensing cf. https://pixabay.com/de/service/license/">10</a></sup>)</li>



<li>Avoid, if possible, image databases that mix commercial paid images with free.<sup><a href="https://fodina.de/image-databases/#footnote_10_5636" id="identifier_10_5636" class="footnote-link footnote-identifier-link" title="Too great the risk that you pick a non-free image.">11</a></sup> E.g. <a href="https://freephotos.cc/en">freephotos</a> or <a href="https://thenounproject.com/">the nounproject</a></li>



<li>Definitely avoid meta image databases in any case.<sup><a href="https://fodina.de/image-databases/#footnote_11_5636" id="identifier_11_5636" class="footnote-link footnote-identifier-link" title="What exactly applies here is very hard to track there.">12</a></sup></li>
</ul>



<h2 class="wp-block-heading"><i class=" fa-regular fa-lightbulb"></i> Background</h2>



<p></p><div class="wp-block-image"><figure class="alignleft size-medium is-resized alignright "><a href="https://fodina.de/wp-content/uploads/2023/03/copyright.svg" data-fancybox><img decoding="async" src="https://fodina.de/wp-content/uploads/2023/03/copyright.svg" alt="copyright law" width="200"></a></figure></div> Images, photos, and logos are also subject to copyright law. Often also of the trademark law. Without the photographer or owner granting us the rights of use, we are not allowed to use their photographs and logos. Moreover, even what is pictured can limit our exploitation — while the freedom of art expands our scope. How does a user get out of this ‘snake pit’ unscathed?



<p>On the first attempt, it seems easy. After all, most of the time, the author will only want to ‘illustrate’ her posts. But if she has linked a web store or consulting offer to her site, she earns money indirectly with the images. And thus she uses the images commercially. So again the question is, what can she do?</p>



<p>I have outlined my way above. Two additions to this:</p>



<ul class="wp-block-list">
<li>When it comes to ‘logos’, I search the web presence of the logo owners. Often they tell us explicitly what we can and cannot do with their logos. And this is even true for non-profit organizations, like the <a href="https://opensource.org/">OSI</a>((for logo usage cf. <a href="https://opensource.org/logo-usage-guidelines/">https://opensource.org/logo-usage-guidelines/</a>)) or those of the <a href="https://www.gimp.org/">Gimp</a>((for logo usage cf. <a href="https://github.com/GNOME/gimp/blob/master/docs/Wilber.xcf.gz.README">https://github.com/GNOME/gimp/blob/master/docs/Wilber.xcf.gz.README</a>)).</li>



<li>When it comes to what is pictured, I follow two rules of thumb:
<ul class="wp-block-list">
<li>Be careful with people and products depicted — they’d rather not.</li>



<li>Caution with unknown buildings</li>
</ul>
</li>
</ul>


  <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">
<ol class="footnotes"><li id="footnote_0_5636" class="footnote">We’re allowed to use those for no consideration, after all.</li><li id="footnote_1_5636" class="footnote">for licensing see <a href="https://pxhere.com/en/license">https://pxhere.com/en/license</a></li><li id="footnote_2_5636" class="footnote">for licensing cf. <a href="https://openclipart.org/faq">https://openclipart.org/faq</a></li><li id="footnote_3_5636" class="footnote">for licensing cf. <a href="https://commons.wikimedia.org/wiki/Commons:Licensing/de">https://commons.wikimedia.org/wiki/Commons:Licensing/de</a></li><li id="footnote_4_5636" class="footnote">for the layer model of CC licenses, see <a href="https://creativecommons.org/licenses/">https://creativecommons.org/licenses/</a></li><li id="footnote_5_5636" class="footnote">Because legally even the simplest blog can still be interpreted as a commercial enterprise.</li><li id="footnote_6_5636" class="footnote">Challengingly, these databases often allow commercial use, but at the same time prohibit the sale of the images, even in print, or their incorporation into other databases</li><li id="footnote_7_5636" class="footnote">for licensing cf. <a href="https://www.pexels.com/license/" class="broken_link">https://www.pexels.com/license/</a></li><li id="footnote_8_5636" class="footnote">for licensing cf. <a href="https://unsplash.com/license">https://unsplash.com/license</a></li><li id="footnote_9_5636" class="footnote">for licensing cf. <a href="https://pixabay.com/de/service/license/" class="broken_link">https://pixabay.com/de/service/license/</a></li><li id="footnote_10_5636" class="footnote">Too great the risk that you pick a non-free image.</li><li id="footnote_11_5636" class="footnote">What exactly applies here is very hard to track there.</li></ol><p>The post <a href="https://fodina.de/image-databases/">Getting Nice Pictures — Where From, If Not Steal?</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/image-databases/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Picture Credit Page? Really?</title>
		<link>https://fodina.de/picture-credit-page/</link>
					<comments>https://fodina.de/picture-credit-page/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Wed, 01 Mar 2023 09:10:45 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bootScore]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[Licensing]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://127.0.0.1/wpd.fd/?p=5631</guid>

					<description><![CDATA[<p>I don’t buy images. Never. I take my own pictures. Or I use free images released under a Creative Commons License. Or in the ‘public domain’. Some image databases offer their photographs under their own licenses, equivalent to the free licenses, as long as I do not make their images publicly available through another image [&#8230;]</p>
<p>The post <a href="https://fodina.de/picture-credit-page/">A Picture Credit Page? Really?</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I don’t buy images. Never. I take my own pictures. Or I use free images released under a <a href="https://creativecommons.org/licenses/?lang=de">Creative Commons License</a>. Or in the ‘public domain’. Some image databases offer their photographs under their own licenses, equivalent to the free licenses, as long as I do not make their images publicly available through another image database. I accept that as well. And as open-source licenses do, too, <a href="https://fodina.de/image-databases/">some ‘picture’ licenses impose certain duties on me</a>. Thus, I need <a href="https://fodina.de/picture-credits/">a picture credit page</a>:<span id="more-5631"></span></p>



<p>For example, sometimes I have to say where I got the image, who its photographer is, and what license it is under. The right place to fulfill such conditions is a page for image credits<sup><a href="https://fodina.de/picture-credit-page/#footnote_0_5631" id="identifier_0_5631" class="footnote-link footnote-identifier-link" title="BTW: In the European legal space, there is no such thing as 'public domain'. But we can usually use the images published in this way in America">1</a></sup>:</p>



<p class="has-text-align-right"></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/bilderverzeichnis">de</a> ]</div></div></div></div>



<h2 class="wp-block-heading"><i class=" fa-regular fa-face-smile"></i> Solution</h2>



<h3 class="wp-block-heading">A Table For Image Credits</h3>



<ul class="wp-block-list">
<li>Create a page ‘Image Credits’ and include it on your site like your imprint</li>



<li>Install the plugin <a href="https://de.wordpress.org/plugins/tablepress/">TablePress</a>.</li>



<li>Create a table with the 4 columns ‘Picture’, ‘Download &amp; Licensing’, ‘License’, and ‘Attribution’.</li>



<li>Include this table in your page <em>Image Credits</em> by using the TablePress shortcode.</li>
</ul>



<h3 class="wp-block-heading">A New Image Reference</h3>



<ul class="wp-block-list">
<li>Add a new row to the image reference table.</li>



<li>Concerning the first column ‘IMAGE’ 
<ul class="wp-block-list">
<li>open the media library, click on the new image and remember its ID, which is displayed in the browser URL.</li>



<li>enter the already-known short code <code>wrong image data</code>.</li>
</ul>
</li>



<li>In the second column, link an appropriate text to the same image in the database. If the target page does not contain a licensing statement, add a second link in the same column that leads to the licensing statement of the picture database.</li>



<li>In the third column, link the license name to the license text, preferably in the version from the image database.</li>



<li>In the fourth column, enter all the information that the license requires.</li>
</ul>



<h2 class="wp-block-heading"><i class=" fa-regular fa-lightbulb"></i> Background</h2>



<p>First things first: The WordPress plugin <em><a href="https://de.wordpress.org/plugins/tablepress/">TablePress</a></em> is <a href="https://de.wordpress.org/plugins/tablepress/#developers">actively maintained</a> and is — according to the file <a href="https://plugins.trac.wordpress.org/browser/tablepress/trunk/readme.txt">readme.txt</a> — GPL‑2.0 licensed. So this is a ‘flawless’ piece of Open-Source software.</p>



<p>Finally, the more complex aspects: Why do we need an image credit at all? Formally, we don’t! We just need to fulfill in some way every requirement of the license that has been linked to the image we are using. But the license compliance itself is non-negotiable for the sincere user: either she respects the terms of the license, or she does not use the image.<sup><a href="https://fodina.de/picture-credit-page/#footnote_1_5631" id="identifier_1_5631" class="footnote-link footnote-identifier-link" title="I have already written about image trolls and their 'business model'">2</a></sup></p>



<p>That’s why I make things simple for myself: I enter <strong>every</strong> image into my table for image credits according to the marked pattern. Even those, where I am free to say nothing — like with PxHere pictures. And if I follow the pattern, nothing slips through my hands either. Hopefully.</p>



<p>To that end, I’ve written myself a set of short codes that make it a snap to add a new image to the table. I will gladly pass on these codes on request.</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-road"></i> And how does this …</h5>
  <p class="myPageContext">… support our 
  <a href="/bootscore-migration/">migration</a> to 
  <a href="https://bootscore.me/">bootScore</a>? Well,
  once started with <a href="/pimp-your-bootscore/">improving</a> the
  <a href="/speed-up-images">image handling</a>, a web designer will 
  also notice the <a href="/blurred-featured-images/">blurred ‘featured images’</a> 
  of bootScore. She will <a href="/larger-image-squares/">try</a> and 
  <a href="/less-blurred-images/">refine</a> solutions. And she may also tackle them 
  <a href="/without-any-blurred-images/">with new HTML‑5 techniques</a>. Because with 
  that, <a href="/image-databases/">a fancier image strategy</a> combined 
  with <a href="/picture-credit-page/">an integrated license fulfillment process</a>
  and its own <a href="/logos-and-favicons/">logo</a> will really make sense.
  However, pictures bring colors to reading. So they should be integrated into 
  <a href="}/color-concept">a customized color concept</a>. 
  This post also contributes something to this topic.
  </p><hr class="wp-block-separator has-alpha-channel-opacity">

<ol class="footnotes"><li id="footnote_0_5631" class="footnote">BTW: In the European legal space, there is no such thing as ‘public domain’. But we can usually use the images published in this way in America</li><li id="footnote_1_5631" class="footnote">I have already written about image trolls and their ‘business model’</li></ol><p>The post <a href="https://fodina.de/picture-credit-page/">A Picture Credit Page? Really?</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/picture-credit-page/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Copyright Line As Feeding For Your Footer</title>
		<link>https://fodina.de/copyright-line/</link>
					<comments>https://fodina.de/copyright-line/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Tue, 07 Feb 2023 18:56:10 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bootScore]]></category>
		<category><![CDATA[Licensing]]></category>
		<guid isPermaLink="false">http://127.0.0.1/wpd.fd/?p=5282</guid>

					<description><![CDATA[<p>In the European legal area, exploitation rights inherently belong to the author of a work. She does not have to do anything else. In the American legal area, things are different. There, every work falls into the ‘public domain’ by default. Only when the author actively claims her ‘copyright’, the work belongs to her. Thus, [&#8230;]</p>
<p>The post <a href="https://fodina.de/copyright-line/">A Copyright Line As Feeding For Your Footer</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In the European legal area, exploitation rights inherently belong to the author of a work. She does not have to do anything else. In the American legal area, things are different. There, every work falls into the ‘public domain’ by default. Only when the author actively claims her ‘copyright’, the work belongs to her. Thus, having in copyright line in your footer could be helpful for you:<span id="more-5282"></span></p>



<p>But what happens with original European works in the American legal area? Without claiming authorship, they probably fall into the <em>public domain</em>. So an author is well advised to mark her European publications with a copyright notice, even if this seems superfluous from the European viewpoint.<sup><a href="https://fodina.de/copyright-line/#footnote_0_5282" id="identifier_0_5282" class="footnote-link footnote-identifier-link" title="Therefore the FSF says that the free GNU software is first put under copyright and then becomes copyleft software by means of the GPL.">1</a></sup> And so she should keep it with her Internet sites.</p>



<p class="has-text-align-right"></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/copyright-line">de</a> ]</div></div></div></div>



<h2 class="wp-block-heading"><i class=" fa-regular fa-face-smile"></i> Solution</h2>



<ul class="wp-block-list">
<li>Add the following line to the file <em>scss/_bscore_custom.scss</em> of your child theme:</li>
</ul>



<pre class="wp-block-code"><code>.bootscore-copyright {display: none;}</code></pre>



<ul class="wp-block-list">
<li>Add a text box to the new widget <em>Footer Info</em> arising under <em>Appearance/Widgets</em>.</li>



<li>Enter a text line starting with ‘©’ YEAR Author-Name’.</li>
</ul>



<h2 class="wp-block-heading" id="block-a46783c3-3d64-4145-af92-78f617e1f00b"><i class=" fa-regular fa-lightbulb"></i> Background</h2>



<p></p><div class="wp-block-image"><figure class="alignleft size-medium is-resized alignleft "><a href="https://fodina.de/wp-content/uploads/2023/04/update-pxb-1672356-420x112-1.png" data-fancybox><img decoding="async" src="https://fodina.de/wp-content/uploads/2023/04/update-pxb-1672356-420x112-1-300x80.png" alt="Update Plate" width="200"></a></figure></div> Until version <em>bootScore 5.2.3.3</em>, we had to create a widget for the copyright line ourselves and activate it in the <a href="https://fodina.de/minor-footer-stuff/">footer.php</a> file. With version 5.2.3.4, the <em>bootScore authors</em> have thankfully taken this idea of an editable CR-Line and provided the widget ‘Footer Info’ for it. In this sense, I have updated the solution and background information.



<p></p>



<p>So, eventually, there is the question of location and copyright sign in the line. In this case, the form is rather secondary: you are not obliged to use the HTML tag $copy; for ©. You can also use images like <i class=" fa-regular fa-copyright"></i> or — very old-fashioned — the string <code>(C)</code>. You also do not need to add a town or a country. In case of dispute, you only have to prove that You are You. That’s why I often add my place of residence and my nation. Does that work? No idea. I’m not a lawyer and I don’t give advice; I just tell. And I have never been involved in a dispute.</p>


<hr class="wp-block-separator has-alpha-channel-opacity">
<h5 class="wp-block-heading"><i class="fa-solid fa-road"></i> And how does this …</h5>
  <p class="myPageContext">… support our 
  <a href="http://fodina.de/bootscore-migration/">migration</a> to 
  <a href="https://bootscore.me/">bootScore</a>?  Well,
  if a web designer must <a href="http://fodina.de/yaml-css/">abandon her current WordPress theme</a>, 
  she needs a replacement. A <a href="https://github.com/bootscore">free ‘off-the-shelf’ theme</a>, 
  she probably wants to <a href="http://fodina.de/pimp-your-bootscore/">personalize</a>. 
  First <a href="http://fodina.de/bootscore-font-awesome-shortcode/">a bit</a> 
  <a href="http://fodina.de/font-awesome-checklist/">cosmetically</a>, then in 
  terms of <a href="http://fodina.de/hyphenation/">the gray value of her pages</a>, 
  <a href="http://fodina.de/bilingualism/">multilingualism</a> and internal
  <a href="http://fodina.de/footnotes/">reference techniques</a> and
  <a href="http://fodina.de/internal-linking/">linking</a>. Finally, 
  she perhaps enables  <a href="http://fodina.de/minor-footer-stuff/">special footers</a>, 
  <a href="http://fodina.de/subordinated-menu/">a secondary menu</a> or 
  a <a href="http://fodina.de/copyright-line/">copyright notice</a> before 
  <a href="http://fodina.de/no-broken-links-please/">checking</a>
  the <a href="http://fodina.de/bootscore-plus-seo/">SEO</a> features 
  of the selected theme. This is a way that this post supports too.
  </p><hr class="wp-block-separator has-alpha-channel-opacity">

<ol class="footnotes"><li id="footnote_0_5282" class="footnote">Therefore <a href="https://www.gnu.org/licenses/copyleft.html">the FSF</a> says that the free GNU software is first put under copyright and then becomes copyleft software by means of the GPL.</li></ol><p>The post <a href="https://fodina.de/copyright-line/">A Copyright Line As Feeding For Your Footer</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/copyright-line/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The Bitkom Open Source Guide 3.0</title>
		<link>https://fodina.de/bosl-3-0/</link>
					<comments>https://fodina.de/bosl-3-0/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Mon, 11 Jul 2022 13:57:29 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Licensing]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=4265</guid>

					<description><![CDATA[<p>For 6 years, the Bitkom Open Source Guide 2.0 was a tutorial for the appropriate use of open-source software. It was a benchmark for German companies. But it has aged over time, naturally. Good that Bitkom and its ‘Open Source’ working group have taken up the topic again: In June 2022, there was officially released [&#8230;]</p>
<p>The post <a href="https://fodina.de/bosl-3-0/">The Bitkom Open Source Guide 3.0</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-medium is-resized is-style-default "><a href="https://fodina.de/wp-content/uploads/2023/05/bosl.png" data-fancybox><img decoding="async" src="https://fodina.de/wp-content/uploads/2023/05/bosl-212x300.png" alt="Riding a dead horse" width="80"></a></figure></div>



<p>For 6 years, the <a href="https://www.bitkom.org/sites/default/files/file/import/FirstSpirit-1498131485664160229-OSS-Open-Source-Software.pdf">Bitkom Open Source Guide 2.0</a> was a tutorial for the appropriate use of open-source software. It was a benchmark for German companies. But it has aged over time, naturally. Good that <a href="https://www.bitkom.org/">Bitkom</a> and its <a href="https://www.bitkom.org/Bitkom/Organisation/Gremien/Open-Source.html">‘Open Source’ working group</a> have taken up the topic again: In June 2022, there was <a href="https://www.bitkom.org/Bitkom/Publikationen/Open-Source-Leitfaden-Praxisempfehlungen-fuer-Open-Source-Software-Version-30">officially released</a> an expanded and refined <a href="https://www.bitkom.org/sites/main/files/2022-06/220624-Bitkom-Leitfaden-Open%20Source-3.0_0.pdf">Bitkom Open Source Guide 3.0</a>, — again intended to be a manual and a benchmark for companies <span id="more-4265"></span></p>



<p class="has-text-align-right"></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/bosl-3-0">de</a> ]</div></div></div></div>



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



<p>The one amazing thing is that with this guide, Bitkom has published a ‘handout’ under a (kind of) open-source license for the first time, that is to say: under a Creative Commons license (CC BY-ND 3.0 DE). Apparently, the idea of ​​a freely accessible service is also coming to the fore at Bitkom. That gives his voice even more weight. But it is understandable that Bitkom does not allow third parties to modify the work (ND = Non Derivation). It wants to preserve the gained quality and reliability. However, by using this CC license Bitkom permits any other type of use by third parties, including commercial use. And in the not-too-distant future, Bitkom will certainly bring itself to make the sources generally accessible, not just in a ‘closed’ GitHub organization.</p>



<p>The second astonishing thing is related to this. Bitkom has allowed its authors to organize themselves via and with GitHub. Anyone could take part. Anyone could become a member of the organization and thus access the GitHub repository containing the (partial) results. Bitkom has — again, for the first time and successfully — developed a book using the methods of open-source software development. The authors wrote the chapters of the Bitkom open-source guide in Markdown. Then they checked their modifications into the repository as snippets. Eventually, they combined them as a complete work via incidents and pull requests, although by no means all authors were familiar with GitHub from the beginning. This fact also points beyond itself: <a href="https://git-scm.com/">Git</a>, <a href="https://github.com/">GitHub</a> or <a href="https://gitlab.com/">GitLab</a> can significantly simplify (cross-company) cooperation and collaboration.</p>



<p>And the third amazing thing is the transformation of the content. While the release 2.0 still focused on the legal aspects of use, the new  <a href="https://www.bitkom.org/sites/main/files/2022-06/220624-Bitkom-Leitfaden-Open%20Source-3.0_0.pdf"><strong>Bitkom Open Source Guide 3.0</strong></a> is much more comprehensive and balanced: It discusses both, the benefits of FOSS and its development process. It analyzes the integration into business models and corporate strategies, explains open source compliance, and considers the FOSS history — each on almost the same number of pages. The other aspects of FOSS are no longer an appendage of compliance. The BOSL‑3.0 takes the prerequisites for the successful use of open-source software into account generally, without reducing the topic of ‘license compliance’. And each section, with only 10–20 pages, can easily be used to get a quick overview.</p>



<p>What does this mean for companies? Well, for the moment, BOSL‑3.0 is still a German guideline. But with it, the companies get another reliable guideline that external experts have reviewed several times.</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">
<p>The post <a href="https://fodina.de/bosl-3-0/">The Bitkom Open Source Guide 3.0</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/bosl-3-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CC-BY Image Trolls</title>
		<link>https://fodina.de/cc-by-trolls/</link>
					<comments>https://fodina.de/cc-by-trolls/#respond</comments>
		
		<dc:creator><![CDATA[Karsten Reincke]]></dc:creator>
		<pubDate>Sat, 26 Feb 2022 14:31:53 +0000</pubDate>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[Licensing]]></category>
		<guid isPermaLink="false">http://127.0.0.1/kr/?p=3987</guid>

					<description><![CDATA[<p>A presentation without images sucks. Therefore, we are sometimes tempted to take some from the Internet for beautifying our work. There are so many excellent pictures on the World Wide Web. But to legally inserting a foreign picture in one’s own presentation is not that easy. Unfortunately, a new type of troll has emerged recently, [&#8230;]</p>
<p>The post <a href="https://fodina.de/cc-by-trolls/">CC-BY Image Trolls</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-medium is-resized is-style-default "><a href="https://fodina.de/wp-content/uploads/2023/06/troll-600x337-1.png" data-fancybox><img decoding="async" src="https://fodina.de/wp-content/uploads/2023/06/troll-600x337-1-300x169.png" alt="A Troll" width="160"></a></figure></div>



<p>A presentation without images sucks. Therefore, we are sometimes tempted to <a href="https://fodina.de/image-databases/">take some from the Internet</a> for beautifying our work. There are so many excellent pictures on the World Wide Web. But to legally inserting a foreign picture in one’s own presentation is not that easy. Unfortunately, a new type of troll has emerged recently, the <em>CC-BY image trolls</em>:<span id="more-3987"></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/cc-by-trolls">de</a> ]</div></div></div></div>



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



<p>If we reuse pictures from the Internet, we have to respect the copyrights of the painters or photographers, just as we have to pay license fees to the patent owners, if we use their techniques, or as we have to fulfill the license requirements if we reuse open-source software. Recently, a new type of troll has emerged, the ‘image troll’.[<a href="#FN147">1</a>] It is good to know how they work and how we can protect ourselves from falling victim to them:</p>



<p>Often, free pictures are released under one of the Creative-Commons Licenses. They are similar to Open-Source Licenses: both follow the principle of ‘Paying by Doing’. Instead of paying for getting the right to use licensed objects, you have to do something. Which rights you get and what you have to do depends on the license. There exists a complex system of creative commons licenses[<a href="#FN2">2</a>], but nearly all of them have a ‘BY’ clause indicating, that you must give the photographer’s name, state the license version, and include a link to download the image and a link to download the license text.[<a href="#FN3">3</a>]</p>



<p>These BY-conditions are — as the discoverer of the <em>image trolls</em> said — “[…] easy to get wrong”.[<a href="#FN147">4</a>] That’s the one ingredient an <em>image troll</em> needs: the easier it is to miss the conditions, the more potential victims he has.</p>



<p>The second ingredient is, that earlier versions of the CC-licenses — like the license <em>CC-BY 2.0</em> or the license <em>CC-BY 3.0</em> — contain a “Termination” clause: “This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License.”[<a href="#FN5">5</a>] The meaning of this clause is, that you ‘lose’ the rights of use the moment you fail to fulfill a condition.</p>



<p>One can recognize the explosiveness of such a clause from the fact that the license <em>CC-BY 4.0</em> also contains a termination clause, but additionally provides the possibility to heal a violation: It says that the terminated rights “[…] reinstates automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation […]”.[<a href="#FN6">6</a>]</p>



<p>As a third ingredient an ‘image troll’ needs a method to automatically find the users of his pictures and to analyze whether he failed to fulfill the requirements. Meanwhile, the internet offers a very well-established technique to automatically search for similar images on the Internet.</p>



<p>The fourth ingredient an ‘image troll’ needs is a legal system granting him large compensation payments for rights violations. The USA has such a legal system.</p>



<p>So, how does an <em>image troll</em> work? He only must create nice pictures and publish them in a well-used image database under any CC license with a termination clause.  That becomes his “honeypot”. After that, he must automatically crawl the internet for his picture and analyze whether his ‘customers’ have fulfilled his conditions. If not, he can file a lawsuit against the respective user — his next victim. And at least in the USA, we talk about “statutory damages” up to $150.000.[<a href="#FN147">7</a>]</p>



<p>What can we do to protect ourselves from such attacks, which are legal but at the very least go against the spirit of free software and documents?</p>



<ul class="wp-block-list">
<li>The best method to protect yourself is a) to perfectly know under which terms the pictures you are going to reuse are licensed, and b) to thoroughly fulfill all license requirements.</li>



<li>A good method is to focus on <em>CC0</em> licensed pictures[<a href="#FN8">8</a>] as — for example — offered by <em>pxhere.com</em>[<a href="#FN9">9</a>]: a license, which does not require anything, cannot be misused to file a lawsuit against you.</li>



<li>Another good method is to focus on <em>CC-BY-xyz 4.0</em> licensed pictures.[<a href="#FNA">A</a>] While you must also thoroughly comply with all licensing requirements, at least you have a chance to iron out your mistakes.</li>



<li>If you want to use <em>CC-BY-xyz 3.0 or earlier</em> licensed pictures, you should read and apply the license text, not only the summaries, offered by creative commons.</li>
</ul>



<p>But ignoring image copyrights altogether and just grabbing off the internet what you think you need is the most certain way that any copyright owner will catch you up in a lawsuit. Just as using Open Source Software without fulfilling the license requirements or using patented techniques without paying the license fees.</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><a name="FN147"></a>[1], [4], [7]:  cf. <a href="https://doctorow.medium.com/a-bug-in-early-creative-commons-licenses-has-enabled-a-new-breed-of-superpredator-5f6360713299">https://doctorow.medium.com/a‑bug-in-early-creative-commons-licenses-has-enabled-a-new-breed-of-superpredator-5f6360713299</a>. This article reports on aspects that <em>Cory Doctorow</em> has outlined first. He talks about ‘copyleft trolls’. But I think that using pictures inadequately is the most dangerous.</li>



<li><a name="FN2"></a>[2]: cf. <a href="https://creativecommons.org/about/cclicenses/">https://creativecommons.org/about/cclicenses/</a></li>



<li><a name="FN3"></a>[3]: cf. <a href="https://creativecommons.org/licenses/by/4.0/legalcode">https://creativecommons.org/licenses/by/4.0/legalcode</a>, Section 3 Attribution. It is worth to know the CC organization provide summaries that condense these conditions to the one sentence ‘Credit must be given to the creator’ (cf. <a href="https://creativecommons.org/licenses/by/3.0/">https://creativecommons.org/licenses/by/3.0/</a>). Hence, you are not free to acknowledge the author just as you want.</li>



<li><a name="FN5"></a>[5]: cf. <a href="https://creativecommons.org/licenses/by/2.0/legalcode">https://creativecommons.org/licenses/by/2.0/legalcode</a> or <a href="https://creativecommons.org/licenses/by/3.0/legalcode">https://creativecommons.org/licenses/by/3.0/legalcode</a></li>



<li><a name="FN6"></a>[6]: cf. <a href="https://creativecommons.org/licenses/by/4.0/legalcode">https://creativecommons.org/licenses/by/4.0/legalcode</a></li>



<li><a name="FN8"></a>[8]: cf. <a href="https://creativecommons.org/publicdomain/zero/1.0/">https://creativecommons.org/publicdomain/zero/1.0/</a></li>



<li><a name="FN9"></a>[9]: cf. <a href="https://pxhere.com/en/license">https://pxhere.com/en/license</a></li>



<li><a name="FNA"></a>[A]: cf. <a href="https://creativecommons.org/licenses/by/4.0">https://creativecommons.org/licenses/by/4.0</a></li>
</ul>
<p>The post <a href="https://fodina.de/cc-by-trolls/">CC-BY Image Trolls</a> appeared first on <a href="https://fodina.de">FODINA 4 FOSS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fodina.de/cc-by-trolls/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
