blob: bc766c25d0969ab55e3921ce016c095afaac84d3 [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="mdx-wrapper mdx-page plugin-pages plugin-id-default">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Third party dependencies and licensing | Apache BookKeeper</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://bookkeeper.apache.org/community/licensing"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Third party dependencies and licensing | Apache BookKeeper"><meta data-rh="true" name="description" content="The bookkeeper project ships one source distribution and two binary distributions."><meta data-rh="true" property="og:description" content="The bookkeeper project ships one source distribution and two binary distributions."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://bookkeeper.apache.org/community/licensing"><link data-rh="true" rel="alternate" href="https://bookkeeper.apache.org/community/licensing" hreflang="en"><link data-rh="true" rel="alternate" href="https://bookkeeper.apache.org/community/licensing" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.49914aab.css">
<link rel="preload" href="/assets/js/runtime~main.99a29ea0.js" as="script">
<link rel="preload" href="/assets/js/main.812b2dbb.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/bk-logo.svg" alt="Apache Bookkeeper" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/bk-logo.svg" alt="Apache Bookkeeper" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache BookKeeper</b></a><a class="navbar__item navbar__link" href="/docs/overview/">Documentation</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/community/mailing-lists">Mailing lists</a></li><li><a class="dropdown__link" href="/community/slack">Slack</a></li><li><a href="https://github.com/apache/bookkeeper/issues" target="_blank" rel="noopener noreferrer" class="dropdown__link">Github issues<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a class="dropdown__link" href="/community/releases">Release management</a></li><li><a class="dropdown__link" href="/community/meeting">Community meetings</a></li><li><a class="dropdown__link" href="/community/contributing">Contribution guide</a></li><li><a class="dropdown__link" href="/community/coding-guide">Coding guide</a></li><li><a class="dropdown__link" href="/community/testing">Testing guide</a></li><li><a class="dropdown__link" href="/community/issue-report">Issue report guide</a></li><li><a class="dropdown__link" href="/community/release-guide">Release guide</a></li><li><a class="dropdown__link" href="/community/presentations">Presentations</a></li><li><a class="dropdown__link" href="/community/bookkeeper-proposals">BookKeeper proposals (BP)</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Project</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/project/who">Who are we?</a></li><li><a class="dropdown__link" href="/project/bylaws">Bylaws</a></li><li><a href="https://apache.org/licenses" target="_blank" rel="noopener noreferrer" class="dropdown__link">License<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a class="dropdown__link" href="/project/privacy">Privacy policy</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/docs/overview/">4.16.5</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/next/overview/">Next</a></li><li><a class="dropdown__link" href="/docs/overview/">4.16.5</a></li><li><a class="dropdown__link" href="/docs/4.15.5/overview/">4.15.5</a></li><li><a class="dropdown__link" href="/docs/4.14.8/overview/">4.14.8</a></li><li><a class="dropdown__link" href="/docs/4.13.0/overview/">4.13.0</a></li><li><a class="dropdown__link" href="/docs/4.12.1/overview/">4.12.1</a></li><li><a class="dropdown__link" href="/docs/4.11.1/overview/">4.11.1</a></li><li><a class="dropdown__link" href="/docs/4.10.0/overview/">4.10.0</a></li><li><a class="dropdown__link" href="/docs/4.9.2/overview/">4.9.2</a></li><li><a class="dropdown__link" href="/docs/4.8.2/overview/">4.8.2</a></li><li><a class="dropdown__link" href="/docs/4.7.3/overview/">4.7.3</a></li><li><a class="dropdown__link" href="/docs/4.6.2/overview/">4.6.2</a></li><li><a class="dropdown__link" href="/docs/4.5.1/overview/">4.5.1</a></li></ul></div><a class="navbar__item navbar__link" href="/releases">Download</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><main class="container container--fluid margin-vert--lg"><div class="row mdxPageWrapper_j9I6"><div class="col col--8"><article><h1>Third party dependencies and licensing</h1><p>The bookkeeper project ships one source distribution and two binary distributions.</p><ul><li><code>bookkeeper-&lt;version&gt;-src.tar.gz</code>, which contains the source code to build bookkeeper.</li><li><code>bookkeeper-all-&lt;version&gt;-bin.tar.gz</code>, which contains the bookkeeper server and all optional dependencies.</li><li><code>bookkeeper-server-&lt;version&gt;-bin.tar.gz</code>, which contains the bare minimum to run a bookkeeper server.</li></ul><p>The source distribution can contain source code copied from third parties. The binaries ship with third party dependencies in jar file form. </p><p>As the ASF may not own the copyright on the contents of this copied source code or third party jars, we may need to account for them in the LICENSE and/or NOTICE file of the distribution.</p><p>The LICENSE and NOTICE files for the source distribution are found at:</p><ul><li><a href="https://github.com/apache/bookkeeper/blob/master/LICENSE" target="_blank" rel="noopener noreferrer">bookkeeper/LICENSE</a></li><li><a href="https://github.com/apache/bookkeeper/blob/master/NOTICE" target="_blank" rel="noopener noreferrer">bookkeeper/NOTICE</a></li></ul><p>The LICENSE and NOTICE files for the binary distribution are found at:</p><ul><li><a href="https://github.com/apache/bookkeeper/blob/master/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt" target="_blank" rel="noopener noreferrer">bookkeeper/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt (for -all package)</a></li><li><a href="https://github.com/apache/bookkeeper/blob/master/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt" target="_blank" rel="noopener noreferrer">bookkeeper/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt (for -all package)</a></li><li><a href="https://github.com/apache/bookkeeper/blob/master/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt" target="_blank" rel="noopener noreferrer">bookkeeper/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt (for -server package)</a></li><li><a href="https://github.com/apache/bookkeeper/blob/master/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt" target="_blank" rel="noopener noreferrer">bookkeeper/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt (for -server package)</a></li></ul><p>When updating these files, use the following rules of thumb:</p><ul><li>BSD/MIT-style dependencies should be covered in LICENSE.</li><li>Apache Software License dependences should be covered in NOTICE, but only if they themselves contain a NOTICE file.</li><li>NOTICE should be kept to a minimum, and only contain what is legally required.</li><li>The LICENSE and NOTICE files for the binary packages should contains everything in source LICENSE and NOTICE packages, unless the source code being referred to does not ship in the binary packages (for example, if it was copied in only for tests).</li><li>All shipped dependencies should be mentioned in LICENSE for completeness, along with a link to their source code if available.</li><li>Any license other than BSD/MIT-style or ASL should be discussed on <a href="/community/mailing-lists">the dev list</a>.</li><li>If you have any doubts, raise them on <a href="/community/mailing-lists">the dev list</a>.</li></ul><h1>Handling new/updated source dependencies</h1><p>For bookkeeper, a source dependency is any code which has been copied in code form into our source tree. An example of this is <a href="https://github.com/apache/bookkeeper/tree/master/circe-checksum" target="_blank" rel="noopener noreferrer">circe-checksum</a> which was copied into our codebase and modified. Depending on the license of source code, you may need to update the source distribution LICENSE and NOTICE files.</p><p>In the case of circe-checksum, the original code is under the Apache Software License, Version 2 (ASLv2), and there is no NOTICE file, so neither LICENSE nor NOTICE need to be updated.</p><p>If, for example, we were to copy code from <a href="https://github.com/apache/hadoop" target="_blank" rel="noopener noreferrer">Hadoop</a>, and the code in question was originally written for Hadoop, then we would not need to update LICENSE or NOTICE, as Hadoop is also licensed under the ASLv2, and while it has a NOTICE file, the part covering code originally written for Hadoop is covered by the line, &quot;This product includes software developed by The <a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer">Apache Software Foundation</a>.&quot;, which already exists in our NOTICE. However, if we were to copy code from Hadoop that originally originated elsewhere, such as their <a href="https://github.com/apache/hadoop/blob/f67237cbe7bc48a1b9088e990800b37529f1db2a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/PureJavaCrc32C.java" target="_blank" rel="noopener noreferrer">pure java CRC library</a>, this code is originally from Intel, under a BSD style license, so you would have to track down the original license, add it to <a href="https://github.com/apache/bookkeeper/blob/master/bookkeeper-dist/src/main/resources/" target="_blank" rel="noopener noreferrer">deps/</a> and link it from our LICENSE file.</p><p>If we were to copy code from <a href="https://github.com/netty/netty/" target="_blank" rel="noopener noreferrer">Netty</a>, and the code in question was originally written for Netty, then we would need to update NOTICE with the relevant portions (i.e. the first section) from the <a href="https://github.com/netty/netty/blob/4.1/NOTICE.txt" target="_blank" rel="noopener noreferrer">Netty NOTICE file</a>, as Netty is licensed under the ASLv2 and it <em>does</em> contain a NOTICE file. If we were to copy code from Netty which originally originated elsewhere, but had also been modified by Netty, for example <a href="https://github.com/netty/netty/blob/b60e0b6a51d59fb9a98918c8783265b30531de57/common/src/main/java/io/netty/logging/CommonsLogger.java" target="_blank" rel="noopener noreferrer">their SLF4J modifications</a>, we would need to update our NOTICE with the relevant portions (i.e. the first section) from Netty&#x27;s NOTICE, and also add the SLF4J license to <a href="https://github.com/apache/bookkeeper/blob/master/bookkeeper-dist/src/main/resources/" target="_blank" rel="noopener noreferrer">deps/</a> and link it from our LICENSE file (as it has an MIT-style license).</p><p>If we were to copy code from <a href="https://github.com/google/protobuf" target="_blank" rel="noopener noreferrer">Protobuf</a> or <a href="https://www.slf4j.org/" target="_blank" rel="noopener noreferrer">SLF4J</a> into our code base, then we would have to copy their license to <a href="https://github.com/apache/bookkeeper/blob/master/bookkeeper-dist/src/main/resources/" target="_blank" rel="noopener noreferrer">deps/</a> and link it from our LICENSE file, as these projects are under <a href="https://github.com/google/protobuf/blob/master/LICENSE" target="_blank" rel="noopener noreferrer">BSD-style</a> and <a href="https://www.slf4j.org/license.html" target="_blank" rel="noopener noreferrer">MIT-style</a> licenses respectively.</p><h1>Handling new/updated binary dependencies</h1><p>When a new binary dependency is added, or a dependency version is updated, we need to update the LICENSE and NOTICE files for our binary packages. There is a separate version of each of these files for both the -all tarball and the -server tarball. The files can be found at <code>bookkeeper-dist/src/main/resources</code>.</p><p>How you update the files depends on the licensing of the dependency. Most dependencies come under either the Apache Software License, Version 2, or an MIT/BSD style license. If the software comes under anything else, it&#x27;s best to ask for advice on the <a href="/community/mailing-lists">dev@ list</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="devcheck-binary-license-script">dev/check-binary-license script<a href="#devcheck-binary-license-script" class="hash-link" aria-label="Direct link to dev/check-binary-license script" title="Direct link to dev/check-binary-license script"></a></h2><p>We provide a script which will check if the LICENSE file attached to a binary tarball matches the jar files distributed in that tarball. The goal of the script is to ensure that all shipped binaries are accounted for, and that nothing else is mentioned in the LICENSE or NOTICE files.</p><p>To check that licensing is correct, generate the tarball and run the script against it as follows (in this example I&#x27;ve removed references to protobuf from the LICENSE file).</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">~/src/bookkeeper $ mvn clean package -DskipTests</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">~/src/bookkeeper $ dev/check-binary-license bookkeeper-dist/server/target/bookkeeper-server-4.7.0-SNAPSHOT-bin.tar.gz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">com.google.protobuf-protobuf-java-3.4.0.jar unaccounted </span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">in</span><span class="token plain"> LICENSE</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">deps/protobuf-3.4.0/LICENSE bundled, but not linked from LICENSE</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">~/src/bookkeeper $ </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The script checks the following:</p><ol><li>If a jar file is included in the tarball, this file must be mentioned in the LICENSE file.</li><li>If a jar file is mentioned in LICENSE or NOTICE, then this jar file must exist in the tarball.</li><li>If a license exists under deps/ in the tarball, this is license must be linked in the LICENSE file.</li><li>If a license is linked from the LICENSE file, it must exist under deps/ in the tarball.</li></ol><p>This script will fail the check even if only the version of the dependency has changed. This is intentional. The licensing requirements of a dependency can change between versions, so if a dependency version changes, we should check that the entries for that dependency are correct in our LICENSE and NOTICE files.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="apache-software-license-version-2-binary-dependencies">Apache Software License, Version 2 binary dependencies<a href="#apache-software-license-version-2-binary-dependencies" class="hash-link" aria-label="Direct link to Apache Software License, Version 2 binary dependencies" title="Direct link to Apache Software License, Version 2 binary dependencies"></a></h2><ol><li>Add the jar under &quot;The following bundled 3rd party jars are distributed under the Apache Software License, Version 2.&quot;</li><li>Add a link to the source code of this dependency if available. This will help anyone updating the license in the future.</li><li>Check the LICENSE file of the dependency.</li></ol><ul><li>If it only contains the Apache Software License, Version 2, nothing needs to be copied into our LICENSE file.</li><li>If there is something other than the ASLv2, then you must figure out if it refers to code that is actually shipped in the jar. If it is shipped in the jar, then check the license of that code and apply the rules to it as you would if it was a first order dependency.</li></ul><ol start="4"><li>Check the NOTICE file of the dependency, if there is one.</li></ol><ul><li>Copy any copyright notices to our NOTICE, unless they are for Apache Software Foundation (already covered by our own copyright notice), or they are refer to code covered by a BSD/MIT style license (some projects mistakenly put these in the NOTICE file, but these should be noted in the <em>LICENSE</em> file).</li><li>Ensure that anything copies from the NOTICE file refers to code which is actually shipped with our tarball. Some projects put optional dependencies in their NOTICE, which are not actually pulled into our distribution, so we should not include these.</li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="bsdmit-style-license-binary-dependencies">BSD/MIT style license binary dependencies<a href="#bsdmit-style-license-binary-dependencies" class="hash-link" aria-label="Direct link to BSD/MIT style license binary dependencies" title="Direct link to BSD/MIT style license binary dependencies"></a></h2><ol><li>Add a section to the LICENSE file, stating that &quot;This product bundles X, which is available under X&quot;.</li><li>Add the license to <code>bookkeeper-dist/src/main/resources/deps/</code> and add a link to this file from the LICENSE file.</li><li>Ensure that the deps/ license is in the inclusion lists for the correct package assembly specs (<code>bookkeeper-dist/src/assemble/</code>).</li><li>The section must state the path of the jar that is covered by the license, so that the tool can pick it up.</li><li>Add a link to the source code of the dependency if available, to make it easier to update the dependency in future.</li><li>Sometimes the LICENSE of a dependency refers to a dependency which they themselves has bundled. These references should be copied to our LICENSE file, as if they were first order dependencies.</li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="further-resources">Further resources<a href="#further-resources" class="hash-link" aria-label="Direct link to Further resources" title="Direct link to Further resources"></a></h2><ul><li><a href="http://www.apache.org/dev/licensing-howto.html" target="_blank" rel="noopener noreferrer">Assembling LICENSE and NOTICE</a></li><li><a href="http://apache.org/legal/src-headers.html" target="_blank" rel="noopener noreferrer">ASF Source Header and Copyright Notice Policy</a></li></ul></article></div><div class="col col--2"><div class="tableOfContents_bqdL thin-scrollbar"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#devcheck-binary-license-script" class="table-of-contents__link toc-highlight">dev/check-binary-license script</a></li><li><a href="#apache-software-license-version-2-binary-dependencies" class="table-of-contents__link toc-highlight">Apache Software License, Version 2 binary dependencies</a></li><li><a href="#bsdmit-style-license-binary-dependencies" class="table-of-contents__link toc-highlight">BSD/MIT style license binary dependencies</a></li><li><a href="#further-resources" class="table-of-contents__link toc-highlight">Further resources</a></li></ul></div></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/overview">Overview</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/getting-started/installation">Getting started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/deployment/manual">Deployment</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/admin/bookies">Administration</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/api/overview">API</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/security/overview">Security</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/development/protocol">Development</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/reference/config">Reference</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/community/mailing-lists">Mailing lists</a></li><li class="footer__item"><a class="footer__link-item" href="/community/slack">Slack</a></li><li class="footer__item"><a href="https://github.com/apache/bookkeeper" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/asfbookkeeper" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Project</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/project/who">Who are we?</a></li><li class="footer__item"><a class="footer__link-item" href="/project/bylaws">Bylaws</a></li><li class="footer__item"><a href="https://apache.org/licenses" target="_blank" rel="noopener noreferrer" class="footer__link-item">License<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/project/privacy">Privacy policy</a></li><li class="footer__item"><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Sponsorship<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Thanks<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright"><footer class="footer">
<div class="container">
<div class="content has-text-centered">
<p>
Copyright &copy; 2016 - 2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
</p>
<p>
Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
</p>
</div>
</div>
</footer>
</div></div></div></footer></div>
<script src="/assets/js/runtime~main.99a29ea0.js"></script>
<script src="/assets/js/main.812b2dbb.js"></script>
</body>
</html>