licensing
What are the actions to take when using software licensed under the Apache, Eclipse, MIT and CDDL licenses?
<p>We are working on software that we are planning to sell to businesses.</p>

<p>We are looking at using many components from the open source community to speed up development.</p>

<p>The software we are using so far is released under one of the following licenses:</p>

<ul>
<li>Apache License v2.0</li>
<li>JSON.org license</li>
<li>Eclipse Public License v1.0</li>
<li>MIT License</li>
<li>CDDL License v1.0</li>
</ul>

<p>We have already included the license information (LICENSE.txt) files from all the open source components in the bundle.</p>

<p>We would like to be 100% compliant with the licenses mentioned above. Is there anything else we have to do to before we start selling the software?</p>

<p>The MIT/JSON.org/Apache licenses are non-copyleft, so commercial use is feasible (i.e., you don't have to release source code when distributing your software). They do each have other requirements like attribution (so you need a part of your software or distribution where you maintain the attribution), and JSON.org has a weird requirement that your software "shall be used for Good, not Evil", whatever that means. I don't know if that language has been tried in court to see what it means. You should consult a lawyer for further guidance.</p>

<p>The CDDL license is per-file copyleft, which means you only have to distribute source code for the files which were CDDL licensed. Files that you write that use software that is CDDL-licensed (via import or include) can be licensed as you wish.</p>

<h1>The EPL</h1>

<p>The EPL is more complicated and the most copyleft license in your list. It has a weird patent clause that:</p>

<blockquote>
  <p>...grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor...</p>
</blockquote>

<p>I don't know what that means.</p>

<p>In terms of your software, I don't know if you can use an EPL library. The text states:</p>

<blockquote>
  <p>Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.</p>
</blockquote>

<p>I don't know if software that imports/includes other software is considered "derivative", but legally it probably has to do with the ability of your software to use another module that performs similar functionality. If your software calls an API which is instantiated in multiple libraries, then it probably isn't derivative. If the API is unique enough to a specific library, then a court might rule it "derivative". For example, I have a program that uses either BSD-licensed Editline, or GPL-licensed GNU Readline. My understanding is that because the API that I use is the same for both, installing my software on a machine that uses Readline doesn't mean my software must be GPL. Please note that I could be wrong.</p>

<h2>Conclusion</h2>

<p>I would avoid EPL-licensed software, but I am biased towards permissive licenses like MIT/BSD.</p>
