Skip to content

Instantly share code, notes, and snippets.

@kemitchell
Created March 10, 2019 03:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kemitchell/70f87df932c563d259c3dcae9a4591f5 to your computer and use it in GitHub Desktop.
Save kemitchell/70f87df932c563d259c3dcae9a4591f5 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.6.2">Jekyll</generator><link href="https://writing.kemitchell.com/atom.xml" rel="self" type="application/atom+xml" /><link href="https://writing.kemitchell.com/" rel="alternate" type="text/html" /><updated>2019-03-09T19:32:14-08:00</updated><id>https://writing.kemitchell.com/</id><title type="html">/dev/lawyer</title><subtitle>law, technology, and the space between</subtitle><author><name>Kyle E. Mitchell</name></author><entry><title type="html">Deprecation Notice: MIT and BSD</title><link href="https://writing.kemitchell.com/2019/03/09/Deprecation-Notice.html" rel="alternate" type="text/html" title="Deprecation Notice: MIT and BSD" /><published>2019-03-09T00:00:00-08:00</published><updated>2019-03-09T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/03/09/Deprecation-Notice</id><content type="html" xml:base="https://writing.kemitchell.com/2019/03/09/Deprecation-Notice.html">&lt;p&gt;MIT and BSD open source licenses are well known, popular, and legally deprecated. They served long and well, but they’re older than many open source software developers, and haven’t been maintained.&lt;/p&gt;
&lt;p&gt;With licenses like &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;Blue Oak&lt;/a&gt; available, it’s time open source upgraded from academic forms of the ’80s. There are good social, practical, and especially legal reasons to do so.&lt;/p&gt;
&lt;h2 id=&quot;mit-and-bsd-dont-handle-patents&quot;&gt;MIT and BSD don’t handle patents.&lt;/h2&gt;
&lt;p&gt;Both copyrights and patents apply to software, but the word “patent” does not appear in MIT or BSD terms. &lt;a href=&quot;http://stlr.org/2018/10/15/the-truth-about-oss-frand-by-all-indications-compatible-models-in-standards-settings/&quot;&gt;MIT and Cal’s tech transfer offices say they never intended to license any patents.&lt;/a&gt; There is &lt;a href=&quot;https://opensource.com/article/18/3/patent-grant-mit-license&quot;&gt;some argument&lt;/a&gt; that other words, like “use”, imply permission under patents, anyway. And there is &lt;a href=&quot;http://stlr.org/2019/03/04/oss-and-frand-complementary-models-for-innovation-and-development/&quot;&gt;some law&lt;/a&gt; that may or may not imply patent permission, when giving someone a copy of software. But a license can avoid all that uncertainty by spelling out plainly that it covers all relevant intellectual property. MIT and BSD don’t.&lt;/p&gt;
&lt;p&gt;Licenses like &lt;a href=&quot;https://spdx.org/licenses/Apache-2.0.html&quot;&gt;Apache 2.0&lt;/a&gt; show how lawyers do this in legal terms for private deals every day. &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0#patent&quot;&gt;Blue Oak&lt;/a&gt; shows the same job done in everyday English, without long lists, run-on sentences, or complex scope rules.&lt;/p&gt;
&lt;p&gt;Patents are a problem that MIT and BSD do not solve. Open source developers have better options, at no real cost, with significant additional benefits. Even developers and companies that despise software patents, and will never seek them, benefit by choosing modern terms. It’s one thing to know that &lt;em&gt;you&lt;/em&gt; won’t seek or enforce any patents. It’s quite another to have legal assurance from &lt;em&gt;others&lt;/em&gt; that they, or their successors, won’t lay a patent trap.&lt;/p&gt;
&lt;h2 id=&quot;mit-and-bsd-are-hard-to-read&quot;&gt;MIT and BSD are hard to read.&lt;/h2&gt;
&lt;p&gt;When you tell a lawyer to keep it short, their first draft will cheat by drawing heavily on background law and legal vocabulary. They’ll &lt;em&gt;invoke&lt;/em&gt; complex concepts, rather than identifying or explaining them, often with cues non-lawyers won’t catch. It’s an extra, laborious, intellectually grueling step to translate the whole legal message into everyday words and phrases. &lt;a href=&quot;https://blueoakcouncil.org/2019/03/06/model.html#language-simplified&quot;&gt;Blue Oak made that extra investment&lt;/a&gt;. MIT and Cal did not.&lt;/p&gt;
&lt;p&gt;As a result, the shortness of MIT and BSD are reassuring only until you actually try to understand them, and find you need a decoder ring. The terms are actually &lt;em&gt;dangerous&lt;/em&gt; if you read them without knowing you need that decoder ring, believing you see the whole picture, which often turns out to be just the picture you wanted to see.&lt;/p&gt;
&lt;p&gt;My most popular piece of writing to date is &lt;a href=&quot;https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html&quot;&gt;thousands of words only partly explaining the 171 words of The MIT License&lt;/a&gt;. Having commentary to guide you through a dense license is better than not having it. But it’s a distant second-best to having a license that’s readable and actionable on its own, like &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;Blue Oak&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Blue Oak &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0#purpose&quot;&gt;starts with a summary of its purpose&lt;/a&gt;, a built-in TL;DR. You should read the whole license, because it’s easy and it matters. Blue Oak &lt;em&gt;wants&lt;/em&gt; to be understood.&lt;/p&gt;
&lt;h2 id=&quot;its-not-clear-what-mit-and-bsd-are-legally&quot;&gt;It’s not clear what MIT and BSD are, legally.&lt;/h2&gt;
&lt;p&gt;We call terms for open source software “licenses”. But there’s a long-running debate in open source theory about whether they’re just licenses, licenses and contracts, both, or potentially both. I call the question theoretical, because pragmatically, dealing with that kind of uncertainty is always a distant second-best to avoiding it entirely. For open source, the keys are permission given and the rules that come along with it. Legal characterization is an implementation detail, and implementation details shouldn’t constrain high-level goals.&lt;/p&gt;
&lt;p&gt;Licenses like &lt;a href=&quot;https://spdx.org/licenses/AFL-3.0.html&quot;&gt;AFL&lt;/a&gt; make clear that they &lt;em&gt;can&lt;/em&gt; be contracts. Other forms, and now &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;Blue Oak&lt;/a&gt;, make clear their terms &lt;em&gt;have&lt;/em&gt; to be agreed, and not just received. License or contract? The answer is &lt;em&gt;both&lt;/em&gt;. And that is a very good thing. Eliminating that question clarifies many other issues.&lt;/p&gt;
&lt;p&gt;Another long-running debate in open source licensing theory concerns revocation. When someone releases code under an open source license for nothing, can they take it back? Other popular licenses dating back decades, like &lt;a href=&quot;https://spdx.org/licenses/GPL-2.0-only.html&quot;&gt;GPLv2&lt;/a&gt; and &lt;a href=&quot;https://spdx.org/licenses/GPL-3.0-only.html&quot;&gt;v3&lt;/a&gt;, say specifically that developers &lt;em&gt;cannot&lt;/em&gt; revoke their licenses, but also insist that they are just licenses, and not contracts. That’s still a head-scratcher—&lt;a href=&quot;https://www.synopsys.com/blogs/software-security/breach-gpl-license-breach-contract/&quot;&gt;fortunately not a particularly threatening one&lt;/a&gt;—because the legal rules about revocation and relying on others’ words come from contract law, which covers agreements, not intellectual property law, which covers licenses. Blue Oak &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0#acceptance&quot;&gt;says it’s both a license and an agreement&lt;/a&gt;, and also that &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0#reliability&quot;&gt;contributors can’t take their licenses back&lt;/a&gt;. The title of that section, &lt;em&gt;Reliability&lt;/em&gt;, is just the point.&lt;/p&gt;
&lt;p&gt;We can say much the same about warranty disclaimers and damages exclusions, the parts of licenses, often needlessly set in illegible &lt;code class=&quot;highlighter-rouge&quot;&gt;ALL CAPS&lt;/code&gt;, that protect open source contributors from legal liability. How do those disclaimers and exclusions work? Under contract law, we have a pretty good idea. Under intellectual property law alone, we don’t really know. The specific terms about warranties that we see in nearly all open source licenses—“as is”, “implied warranties”—actually &lt;a href=&quot;https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=2316.&amp;amp;lawCode=COM&quot;&gt;come from statutes about contracts&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;mit-and-bsd-attribution-is-a-land-mine&quot;&gt;MIT and BSD attribution is a land mine.&lt;/h2&gt;
&lt;p&gt;With very rare exception, even permissively licensed open source software under terms like MIT and BSD comes with rules to follow. By far the most common rule is &lt;em&gt;attribution&lt;/em&gt;, which requires those who make copies of the software, in source or compiled form, to include copies of terms, copyright notices, and other information about who licenses the software, and how.&lt;/p&gt;
&lt;p&gt;A byproduct of those notices is credit. Open source developers who want credit should get it. Traditional attribution rules, like those in MIT and BSD terms, arguably don’t go far enough, &lt;a href=&quot;https://writing.kemitchell.com/2018/07/12/Posterity.html&quot;&gt;especially in the software-as-a-service era&lt;/a&gt;. But many companies don’t even do what the old licenses say they have to do, especially for &lt;a href=&quot;https://www.npmjs.com/package/browserify-licenses&quot;&gt;client-side JavaScript libraries&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The contract-or-license question muddies the waters here again. But most lawyers I’ve heard from believe that violating the attribution rule of an open source license &lt;em&gt;kills your license&lt;/em&gt;. In other words, if you use someone’s software under MIT or BSD and share a copy without including their copyright notices and license terms, they can sue you for infringement, since the open source license no longer applies to you.&lt;/p&gt;
&lt;p&gt;The same risk applies to copyleft rules under licenses like GPLv2. That makes it possible for money-minded developers, or those who acquire their rights, to &lt;a href=&quot;https://opensource.com/article/17/8/patrick-mchardy-and-copyright-profiteering&quot;&gt;sue unknowning violators for money&lt;/a&gt;, even when the point was originally to get patches back, not cash. That has led to coordinated efforts like &lt;a href=&quot;https://www.fsf.org/licensing/enforcement-principles&quot;&gt;Principles for Community-Oriented Enforcement&lt;/a&gt; and the &lt;a href=&quot;https://gplcc.github.io/gplcc/&quot;&gt;GPL Cooperation Commitment&lt;/a&gt;. The latter essentially backports a fix from GPLv3 to GPLv2: Pave a path to forgiveness in the license, to ensure companies who break the rule have a chance to make good, and opportunistic plaintiffs can’t use it to spring a trap.&lt;/p&gt;
&lt;p&gt;Blue Oak &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0#excuse&quot;&gt;applies the same fix to its attribution rule&lt;/a&gt;. If someone fails to provide a copy of the license with a copy of the software, you can call them out in writing. If they do what they should have done in thirty days’ time, they’re back on track. If they refuse, then poof goes their license.&lt;/p&gt;
&lt;h2 id=&quot;mit-and-bsd-breed-confusion&quot;&gt;MIT and BSD breed confusion.&lt;/h2&gt;
&lt;p&gt;Nobody knows how many variants of &lt;a href=&quot;https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT&quot;&gt;MIT&lt;/a&gt; and &lt;a href=&quot;https://fedoraproject.org/wiki/Licensing:BSD&quot;&gt;BSD&lt;/a&gt; terms there are. I see a new one twice a year or so. In that sense, MIT and BSD &lt;em&gt;have&lt;/em&gt; evolved over the years, but not in any useful way. Boundless variation just makes identification and compliance harder.&lt;/p&gt;
&lt;p&gt;Neither, apparently, do we really know how to fill out the standardized &lt;a href=&quot;https://spdx.org/licenses/MIT.html&quot;&gt;MIT&lt;/a&gt; and &lt;a href=&quot;https://spdx.org/licenses/BSD-2-Clause.html&quot;&gt;BSD&lt;/a&gt; templates we have. Some projects continue for years, attracting scores of meaningful contributors, with only the long-departed, initial contributor’s name in the license. Some projects replace the name with “project contributors”, rendering the line meaningless. Some projects institute chores for adding names to the copyright line and bumping the year each January. We treat projects doing all of those things the same. Apparently, none of that is essential.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;Blue Oak&lt;/a&gt; follows modern licenses like the GPLs, Apache 2.0, Mozilla Public License, and Eclipse Public License in offering a fixed form. All you have to do is copy the terms into your project and reference it in any header comments, metadata, or documentation about licensing. There’s no copyright line or other template field to fill out or update. There’s no temptation to munge the terms, intentionally or accidentally.&lt;/p&gt;
&lt;p&gt;Authorship information for open source software is nearly always available online. Notice rules designed for projects from single institutions, distributed on magnetic tape by mail, back in the ’80s, don’t make sense in 2019. &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0#notices&quot;&gt;Hyperlinks to terms should count.&lt;/a&gt; Under Blue Oak, they do.&lt;/p&gt;
&lt;h2 id=&quot;mit-and-bsd-dont-expect-more-contributors&quot;&gt;MIT and BSD don’t expect more contributors.&lt;/h2&gt;
&lt;p&gt;MIT and BSD terms include a space for a single copyright notice, because they were written for releases from academic institutions that own all the copyrights in their employees’ work. What about other contributors to the project? They hold copyright in their contributions.&lt;/p&gt;
&lt;p&gt;Modern permissive licenses, like &lt;a href=&quot;https://spdx.org/licenses/Apache-2.0.html&quot;&gt;Apache 2.0&lt;/a&gt;, expect contributions from others, and express rules and expectations about how they’ll be licensed. Those rules are some of the most complex in the Apache license. In part to be double sure, in part because it’s not clear if or how the contribution-licensing conditions of Apache 2.0 work, the Apache Foundation also publishes and uses &lt;a href=&quot;https://www.apache.org/licenses/#clas&quot;&gt;standardized contributor license agreements&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;Blue Oak&lt;/a&gt; takes the next logical step. The license speaks from all contributors to the project, not just the first. It clearly expresses the expectation that all contributors will make their work available on the same terms. It’s still worth getting a record of contributors’ intent to license on Blue Oak terms. But Blue Oak takes the correct approach, &lt;a href=&quot;https://writing.kemitchell.com/2017/02/16/Against-Legislating-the-Nonobvious.html&quot;&gt;documenting that expectation to build a case that it goes without saying, rather than trying to write it into rules folks may not read&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Blue Oak &lt;em&gt;expects&lt;/em&gt; more contributors. MIT and BSD expect everyone to work for one university.&lt;/p&gt;
&lt;h2 id=&quot;use-blue-oak-for-new-work&quot;&gt;Use Blue Oak for new work.&lt;/h2&gt;
&lt;p&gt;I had a hand in drafting the &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;Blue Oak license&lt;/a&gt;, and I’m executive director of Blue Oak Council, the license steward. But I was not alone. Several lawyers came together, in GitHub private repos, to do what we couldn’t have done apart.&lt;/p&gt;
&lt;p&gt;Blue Oak is the best permissive open source software license we know how to write. We didn’t originally set out to write a license, but &lt;a href=&quot;https://blueoakcouncil.org/2019/03/06/model.html&quot;&gt;no existing form offered all the features we were looking for&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A whole lot of great software is out there under MIT and BSD terms. Those licenses will always be with us. As licensing lawyers, we know from firsthand experience how difficult relicensing multi-contributor projects can be.&lt;/p&gt;
&lt;p&gt;But for new work, there’s a clear choice. &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;Blue Oak&lt;/a&gt; is a good permissive license in 2019. Old, unpatched MIT- and BSD-style terms are not.&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Open Source" /><category term="Licensing" /><category term="Intellectual Property" /><summary type="html">MIT and BSD open source licenses are well known, popular, and legally deprecated. They served long and well, but they’re older than many open source software developers, and haven’t been maintained. With licenses like Blue Oak available, it’s time open source upgraded from academic forms of the ’80s. There are good social, practical, and especially legal reasons to do so. MIT and BSD don’t handle patents. Both copyrights and patents apply to software, but the word “patent” does not appear in MIT or BSD terms. MIT and Cal’s tech transfer offices say they never intended to license any patents. There is some argument that other words, like “use”, imply permission under patents, anyway. And there is some law that may or may not imply patent permission, when giving someone a copy of software. But a license can avoid all that uncertainty by spelling out plainly that it covers all relevant intellectual property. MIT and BSD don’t. Licenses like Apache 2.0 show how lawyers do this in legal terms for private deals every day. Blue Oak shows the same job done in everyday English, without long lists, run-on sentences, or complex scope rules. Patents are a problem that MIT and BSD do not solve. Open source developers have better options, at no real cost, with significant additional benefits. Even developers and companies that despise software patents, and will never seek them, benefit by choosing modern terms. It’s one thing to know that you won’t seek or enforce any patents. It’s quite another to have legal assurance from others that they, or their successors, won’t lay a patent trap. MIT and BSD are hard to read. When you tell a lawyer to keep it short, their first draft will cheat by drawing heavily on background law and legal vocabulary. They’ll invoke complex concepts, rather than identifying or explaining them, often with cues non-lawyers won’t catch. It’s an extra, laborious, intellectually grueling step to translate the whole legal message into everyday words and phrases. Blue Oak made that extra investment. MIT and Cal did not. As a result, the shortness of MIT and BSD are reassuring only until you actually try to understand them, and find you need a decoder ring. The terms are actually dangerous if you read them without knowing you need that decoder ring, believing you see the whole picture, which often turns out to be just the picture you wanted to see. My most popular piece of writing to date is thousands of words only partly explaining the 171 words of The MIT License. Having commentary to guide you through a dense license is better than not having it. But it’s a distant second-best to having a license that’s readable and actionable on its own, like Blue Oak. Blue Oak starts with a summary of its purpose, a built-in TL;DR. You should read the whole license, because it’s easy and it matters. Blue Oak wants to be understood. It’s not clear what MIT and BSD are, legally. We call terms for open source software “licenses”. But there’s a long-running debate in open source theory about whether they’re just licenses, licenses and contracts, both, or potentially both. I call the question theoretical, because pragmatically, dealing with that kind of uncertainty is always a distant second-best to avoiding it entirely. For open source, the keys are permission given and the rules that come along with it. Legal characterization is an implementation detail, and implementation details shouldn’t constrain high-level goals. Licenses like AFL make clear that they can be contracts. Other forms, and now Blue Oak, make clear their terms have to be agreed, and not just received. License or contract? The answer is both. And that is a very good thing. Eliminating that question clarifies many other issues. Another long-running debate in open source licensing theory concerns revocation. When someone releases code under an open source license for nothing, can they take it back? Other popular licenses dating back decades, like GPLv2 and v3, say specifically that developers cannot revoke their licenses, but also insist that they are just licenses, and not contracts. That’s still a head-scratcher—fortunately not a particularly threatening one—because the legal rules about revocation and relying on others’ words come from contract law, which covers agreements, not intellectual property law, which covers licenses. Blue Oak says it’s both a license and an agreement, and also that contributors can’t take their licenses back. The title of that section, Reliability, is just the point. We can say much the same about warranty disclaimers and damages exclusions, the parts of licenses, often needlessly set in illegible ALL CAPS, that protect open source contributors from legal liability. How do those disclaimers and exclusions work? Under contract law, we have a pretty good idea. Under intellectual property law alone, we don’t really know. The specific terms about warranties that we see in nearly all open source licenses—“as is”, “implied warranties”—actually come from statutes about contracts. MIT and BSD attribution is a land mine. With very rare exception, even permissively licensed open source software under terms like MIT and BSD comes with rules to follow. By far the most common rule is attribution, which requires those who make copies of the software, in source or compiled form, to include copies of terms, copyright notices, and other information about who licenses the software, and how. A byproduct of those notices is credit. Open source developers who want credit should get it. Traditional attribution rules, like those in MIT and BSD terms, arguably don’t go far enough, especially in the software-as-a-service era. But many companies don’t even do what the old licenses say they have to do, especially for client-side JavaScript libraries. The contract-or-license question muddies the waters here again. But most lawyers I’ve heard from believe that violating the attribution rule of an open source license kills your license. In other words, if you use someone’s software under MIT or BSD and share a copy without including their copyright notices and license terms, they can sue you for infringement, since the open source license no longer applies to you. The same risk applies to copyleft rules under licenses like GPLv2. That makes it possible for money-minded developers, or those who acquire their rights, to sue unknowning violators for money, even when the point was originally to get patches back, not cash. That has led to coordinated efforts like Principles for Community-Oriented Enforcement and the GPL Cooperation Commitment. The latter essentially backports a fix from GPLv3 to GPLv2: Pave a path to forgiveness in the license, to ensure companies who break the rule have a chance to make good, and opportunistic plaintiffs can’t use it to spring a trap. Blue Oak applies the same fix to its attribution rule. If someone fails to provide a copy of the license with a copy of the software, you can call them out in writing. If they do what they should have done in thirty days’ time, they’re back on track. If they refuse, then poof goes their license. MIT and BSD breed confusion. Nobody knows how many variants of MIT and BSD terms there are. I see a new one twice a year or so. In that sense, MIT and BSD have evolved over the years, but not in any useful way. Boundless variation just makes identification and compliance harder. Neither, apparently, do we really know how to fill out the standardized MIT and BSD templates we have. Some projects continue for years, attracting scores of meaningful contributors, with only the long-departed, initial contributor’s name in the license. Some projects replace the name with “project contributors”, rendering the line meaningless. Some projects institute chores for adding names to the copyright line and bumping the year each January. We treat projects doing all of those things the same. Apparently, none of that is essential. Blue Oak follows modern licenses like the GPLs, Apache 2.0, Mozilla Public License, and Eclipse Public License in offering a fixed form. All you have to do is copy the terms into your project and reference it in any header comments, metadata, or documentation about licensing. There’s no copyright line or other template field to fill out or update. There’s no temptation to munge the terms, intentionally or accidentally. Authorship information for open source software is nearly always available online. Notice rules designed for projects from single institutions, distributed on magnetic tape by mail, back in the ’80s, don’t make sense in 2019. Hyperlinks to terms should count. Under Blue Oak, they do. MIT and BSD don’t expect more contributors. MIT and BSD terms include a space for a single copyright notice, because they were written for releases from academic institutions that own all the copyrights in their employees’ work. What about other contributors to the project? They hold copyright in their contributions. Modern permissive licenses, like Apache 2.0, expect contributions from others, and express rules and expectations about how they’ll be licensed. Those rules are some of the most complex in the Apache license. In part to be double sure, in part because it’s not clear if or how the contribution-licensing conditions of Apache 2.0 work, the Apache Foundation also publishes and uses standardized contributor license agreements. Blue Oak takes the next logical step. The license speaks from all contributors to the project, not just the first. It clearly expresses the expectation that all contributors will make their work available on the same terms. It’s still worth getting a record of contributors’ intent to license on Blue Oak terms. But Blue Oak takes the correct approach, documenting that expectation to build a case that it goes without saying, rather than trying to write it into rules folks may not read. Blue Oak expects more contributors. MIT and BSD expect everyone to work for one university. Use Blue Oak for new work. I had a hand in drafting the Blue Oak license, and I’m executive director of Blue Oak Council, the license steward. But I was not alone. Several lawyers came together, in GitHub private repos, to do what we couldn’t have done apart. Blue Oak is the best permissive open source software license we know how to write. We didn’t originally set out to write a license, but no existing form offered all the features we were looking for. A whole lot of great software is out there under MIT and BSD terms. Those licenses will always be with us. As licensing lawyers, we know from firsthand experience how difficult relicensing multi-contributor projects can be. But for new work, there’s a clear choice. Blue Oak is a good permissive license in 2019. Old, unpatched MIT- and BSD-style terms are not.</summary></entry><entry><title type="html">Blue Oak Council</title><link href="https://writing.kemitchell.com/2019/03/07/Blue-Oak-Council.html" rel="alternate" type="text/html" title="Blue Oak Council" /><published>2019-03-07T00:00:00-08:00</published><updated>2019-03-07T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/03/07/Blue-Oak-Council</id><content type="html" xml:base="https://writing.kemitchell.com/2019/03/07/Blue-Oak-Council.html">&lt;p&gt;I’m very happy to announce of Blue Oak Council, a new organization for which I’m inaugural executive director. The Council’s website, &lt;a href=&quot;https://blueoakcouncil.org&quot;&gt;blueoakcouncil.org&lt;/a&gt;, spells out its mission:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Blue Oak Council opens the software commons up to those who can’t find or afford specialized legal help by bringing experienced lawyer-technologists together to publish free, practical materials about software licenses.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The website already hosts a number of projects: a &lt;a href=&quot;https://blueoakcouncil.org/list&quot;&gt;list of permissive public software licenses&lt;/a&gt;, a &lt;a href=&quot;https://blueoakcouncil.org/license/1.0.0&quot;&gt;model permissive license&lt;/a&gt;, and &lt;a href=&quot;https://blueoakcouncil.org/examples&quot;&gt;examples of how to use those resources in contracts, grants, and policies&lt;/a&gt;. We’re looking forward to facilitating new, useful projects with more attorneys in the near future.&lt;/p&gt;
&lt;p&gt;Last week, I found myself sitting in a coffee shop with a fellow board member, mulling the state of the specialty, the profession, and materials to learn it. On a lark, we tried to count the number of attorney specialists in public software licensing currently in private practice, and therefore available to new clients. We agreed it’s probably single digits, maybe even worldwide.&lt;/p&gt;
&lt;p&gt;What’s more, the cost of those specialists’ time, including mine, cuts the count down to zero for nearly all individuals and shoestring operations, especially in the nonprofit sector. There’s a sea of software out there to help them, but they can’t navigate it safely or confidently on their own.&lt;/p&gt;
&lt;p&gt;I don’t know if Blue Oak Council can change all that, but we’re damn well going to try.&lt;/p&gt;
&lt;p&gt;If you’re a fellow or student licensing lawyer looking to collaborate on real, practical resources for the underserved, &lt;a href=&quot;mailto:kyle@kemitchell.com&quot;&gt;drop me a line&lt;/a&gt;. Blue Oak Council wants to be an ally, a resource, and a help in your service.&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Nonprofits" /><category term="Intellectual Property" /><category term="Licensing" /><summary type="html">I’m very happy to announce of Blue Oak Council, a new organization for which I’m inaugural executive director. The Council’s website, blueoakcouncil.org, spells out its mission: Blue Oak Council opens the software commons up to those who can’t find or afford specialized legal help by bringing experienced lawyer-technologists together to publish free, practical materials about software licenses. The website already hosts a number of projects: a list of permissive public software licenses, a model permissive license, and examples of how to use those resources in contracts, grants, and policies. We’re looking forward to facilitating new, useful projects with more attorneys in the near future. Last week, I found myself sitting in a coffee shop with a fellow board member, mulling the state of the specialty, the profession, and materials to learn it. On a lark, we tried to count the number of attorney specialists in public software licensing currently in private practice, and therefore available to new clients. We agreed it’s probably single digits, maybe even worldwide. What’s more, the cost of those specialists’ time, including mine, cuts the count down to zero for nearly all individuals and shoestring operations, especially in the nonprofit sector. There’s a sea of software out there to help them, but they can’t navigate it safely or confidently on their own. I don’t know if Blue Oak Council can change all that, but we’re damn well going to try. If you’re a fellow or student licensing lawyer looking to collaborate on real, practical resources for the underserved, drop me a line. Blue Oak Council wants to be an ally, a resource, and a help in your service.</summary></entry><entry><title type="html">Back to IP</title><link href="https://writing.kemitchell.com/2019/03/04/Back-to-IP.html" rel="alternate" type="text/html" title="Back to IP" /><published>2019-03-04T00:00:00-08:00</published><updated>2019-03-04T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/03/04/Back-to-IP</id><content type="html" xml:base="https://writing.kemitchell.com/2019/03/04/Back-to-IP.html">&lt;blockquote&gt;
&lt;p&gt;The Congress shall have Power … To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries.&lt;/p&gt;
&lt;p&gt;— United States Constitution, Article 1, Section 8&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;How should society support creation and maintenance of public knowledge goods in the private sector? The obvious answer: intellectual property law. The public policy behind modern IP law gives creators of valuable ideas and expressions rights to make others pay for licenses, so they can recoup costs and keep up the good work.&lt;/p&gt;
&lt;p&gt;In the case of open source software specifically, the obvious way to fund developers is to pay them for copyright licenses. The government is so sure of this general solution to the sustainability problem—&lt;a href=&quot;https://en.wikipedia.org/wiki/Excludability&quot;&gt;making nonexcludable ideas excludable&lt;/a&gt;—that it applies to qualifying software by default, like it or not. Open source software developers make software open-source by &lt;a href=&quot;https://oss.kemitchell.com&quot;&gt;reversing those copyright and other IP rules&lt;/a&gt;, knocking out the supports the law provides.&lt;/p&gt;
&lt;p&gt;Of course there’s an open source sustainability problem. Open source declines society’s official solution to the sustainability problem. Opting &lt;em&gt;out&lt;/em&gt; of the solution is opting back &lt;em&gt;in&lt;/em&gt; to the problem.&lt;/p&gt;
&lt;p&gt;None of this is to say that the present policy justification and practical, political history of intellectual property laws have always aligned. They haven’t. Nor does the current policy entirely jibe with reality. Intellectual property rights allotted to individual creators by default often end up belonging to employers and clients instead. The exception of corporate ownership swallows the rule of individual creator empowerment for commercially viable work. Overzealous strengthening of IP rights goes too far, upsetting the balance of social and private benefit.&lt;/p&gt;
&lt;p&gt;Many open source activists reject the idea of treating code, and especially patentable ideas implementable in code, as property. It’s easy to find evidence of the shallow, property-as-panacea thinking they criticize. But it’s also wrong to criticize IP for making ideas into property, and stop there. The law makes ideas into property for a reason. In open source terms, that reason is sustainability. Properly understood and applied, intellectual property is a means to sustainability, not an end in itself. By all means criticize IP rules when they fail to achieve their ends. Or offer a superior alternative.&lt;/p&gt;
&lt;p&gt;Making ideas into property isn’t the only way to fund or encourage work. Some projects, and some creators, don’t need money or encouragement, anyway. Others, especially businesses, have different compelling reasons for creating or funding open source, like &lt;a href=&quot;https://www.cncf.io/&quot;&gt;inducing strategically beneficial market distortions&lt;/a&gt; or &lt;a href=&quot;https://reactjs.org/&quot;&gt;enhancing their names and esteem&lt;/a&gt;. In exceptional cases, support based on enlightened self-interest, like donations, can suffice, at least for a while. But enlightened self-interest remains in short supply.&lt;/p&gt;
&lt;p&gt;There are many reasons to believe in open source, to see it as a novel and exciting exception to rules once seen as firm. Many folks contribute to, and identify with, open source as an alternative to, or rejection of, markets, business firms, industrial production methods, and the modern IP “asset” mentality. These folks marvel at Linux’ ability to challenge, and eventually outcompete, server operating systems from established, traditionalist, hidebound software companies.&lt;/p&gt;
&lt;p&gt;When I speak to these open source contributors about sustainability, I often find them in a double bind.&lt;/p&gt;
&lt;p&gt;On one side, their view drastically constrains the field of viable alternative solutions to the sustainability problem. &lt;a href=&quot;https://indieopensource.com/public-private&quot;&gt;Public-private licensing&lt;/a&gt; is out. &lt;a href=&quot;https://indieopensource.com/open-core&quot;&gt;Open core&lt;/a&gt; is out. Delayed open source release is out. All of these merely mix some element of IP-based exclusivity in with partial or eventual open source release.&lt;/p&gt;
&lt;p&gt;On the other side, they have to confront the fact that industry has learned from, and arguably coopted, a selective sampling of open source tools and techniques. Open source has “won” by demonstrating good service to the kind of large and growing business firms some hoped it would supersede. In many areas open source &lt;em&gt;is&lt;/em&gt; the dominant development culture of software business, and not because business capitulated, but because open source assimilated. It’s the &lt;a href=&quot;https://en.wikipedia.org/wiki/Volkswagen_New_Beetle&quot;&gt;New Beetle&lt;/a&gt; era, not the &lt;a href=&quot;https://en.wikipedia.org/wiki/Volkswagen_Beetle&quot;&gt;Old Beetle&lt;/a&gt; heyday.&lt;/p&gt;
&lt;p&gt;Escape from that double-bind has almost always meant encouraging developers to engage in a kind of business, adjacent to their open source work, that for whatever reason falls outside the scope of open source expectations. That’s a hack. Those approaches conflict, at a higher level, with open ideology. Provide hosting. Offer the software as a service. Sell paid support. Set up a trademark licensing or certification program.&lt;/p&gt;
&lt;p&gt;Often, these opportunities stand just as available to those who don’t contribute to open source as to those who do. That subjects those who rightly deserve support to competition from free riders, again. Where opportunities do favor contributors, their advantage often boils down either to an exclusive right of some other kind, like a trademark, a certification, or established market position, or to an unaccounted deduction from open source. It’s far easier to sell integration, support, and training, for example, by keeping publicly available documentation for an open source project weak, outdated, or nonexistent. It’s far easier to sell hosting or implementation when hosting and implementation remain hard.&lt;/p&gt;
&lt;p&gt;The challenge to property exceptionalists remains: What alternative to exclusivity can they offer, to achieve the same purpose as intellectual property laws? Or do they merely accept that open source will accumulate remainders and contributions from neophytes, the obsessed, and the well-off? That those in need of support shouldn’t expect any, but instead write proprietary code for cash, and pray for a rare fluke of charity?&lt;/p&gt;
&lt;p&gt;An unsustainable challenge to incumbent business is no real challenge at all. Is open source a viable, self-sufficient alternative to those models of software creation and distribution, or merely a reaction—and increasingly an accessory—to business as usual?&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Open Source" /><category term="Intellectual Property" /><category term="Sustainability" /><summary type="html">The Congress shall have Power … To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries. — United States Constitution, Article 1, Section 8 How should society support creation and maintenance of public knowledge goods in the private sector? The obvious answer: intellectual property law. The public policy behind modern IP law gives creators of valuable ideas and expressions rights to make others pay for licenses, so they can recoup costs and keep up the good work. In the case of open source software specifically, the obvious way to fund developers is to pay them for copyright licenses. The government is so sure of this general solution to the sustainability problem—making nonexcludable ideas excludable—that it applies to qualifying software by default, like it or not. Open source software developers make software open-source by reversing those copyright and other IP rules, knocking out the supports the law provides. Of course there’s an open source sustainability problem. Open source declines society’s official solution to the sustainability problem. Opting out of the solution is opting back in to the problem. None of this is to say that the present policy justification and practical, political history of intellectual property laws have always aligned. They haven’t. Nor does the current policy entirely jibe with reality. Intellectual property rights allotted to individual creators by default often end up belonging to employers and clients instead. The exception of corporate ownership swallows the rule of individual creator empowerment for commercially viable work. Overzealous strengthening of IP rights goes too far, upsetting the balance of social and private benefit. Many open source activists reject the idea of treating code, and especially patentable ideas implementable in code, as property. It’s easy to find evidence of the shallow, property-as-panacea thinking they criticize. But it’s also wrong to criticize IP for making ideas into property, and stop there. The law makes ideas into property for a reason. In open source terms, that reason is sustainability. Properly understood and applied, intellectual property is a means to sustainability, not an end in itself. By all means criticize IP rules when they fail to achieve their ends. Or offer a superior alternative. Making ideas into property isn’t the only way to fund or encourage work. Some projects, and some creators, don’t need money or encouragement, anyway. Others, especially businesses, have different compelling reasons for creating or funding open source, like inducing strategically beneficial market distortions or enhancing their names and esteem. In exceptional cases, support based on enlightened self-interest, like donations, can suffice, at least for a while. But enlightened self-interest remains in short supply. There are many reasons to believe in open source, to see it as a novel and exciting exception to rules once seen as firm. Many folks contribute to, and identify with, open source as an alternative to, or rejection of, markets, business firms, industrial production methods, and the modern IP “asset” mentality. These folks marvel at Linux’ ability to challenge, and eventually outcompete, server operating systems from established, traditionalist, hidebound software companies. When I speak to these open source contributors about sustainability, I often find them in a double bind. On one side, their view drastically constrains the field of viable alternative solutions to the sustainability problem. Public-private licensing is out. Open core is out. Delayed open source release is out. All of these merely mix some element of IP-based exclusivity in with partial or eventual open source release. On the other side, they have to confront the fact that industry has learned from, and arguably coopted, a selective sampling of open source tools and techniques. Open source has “won” by demonstrating good service to the kind of large and growing business firms some hoped it would supersede. In many areas open source is the dominant development culture of software business, and not because business capitulated, but because open source assimilated. It’s the New Beetle era, not the Old Beetle heyday. Escape from that double-bind has almost always meant encouraging developers to engage in a kind of business, adjacent to their open source work, that for whatever reason falls outside the scope of open source expectations. That’s a hack. Those approaches conflict, at a higher level, with open ideology. Provide hosting. Offer the software as a service. Sell paid support. Set up a trademark licensing or certification program. Often, these opportunities stand just as available to those who don’t contribute to open source as to those who do. That subjects those who rightly deserve support to competition from free riders, again. Where opportunities do favor contributors, their advantage often boils down either to an exclusive right of some other kind, like a trademark, a certification, or established market position, or to an unaccounted deduction from open source. It’s far easier to sell integration, support, and training, for example, by keeping publicly available documentation for an open source project weak, outdated, or nonexistent. It’s far easier to sell hosting or implementation when hosting and implementation remain hard. The challenge to property exceptionalists remains: What alternative to exclusivity can they offer, to achieve the same purpose as intellectual property laws? Or do they merely accept that open source will accumulate remainders and contributions from neophytes, the obsessed, and the well-off? That those in need of support shouldn’t expect any, but instead write proprietary code for cash, and pray for a rare fluke of charity? An unsustainable challenge to incumbent business is no real challenge at all. Is open source a viable, self-sufficient alternative to those models of software creation and distribution, or merely a reaction—and increasingly an accessory—to business as usual?</summary></entry><entry><title type="html">Indie Open Source</title><link href="https://writing.kemitchell.com/2019/02/25/Indie-Open-Source.html" rel="alternate" type="text/html" title="Indie Open Source" /><published>2019-02-25T00:00:00-08:00</published><updated>2019-02-25T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/02/25/Indie-Open-Source</id><content type="html" xml:base="https://writing.kemitchell.com/2019/02/25/Indie-Open-Source.html">&lt;p&gt;Over the past few years, I’ve had an incredible number of deep conversations about open source business models with solo hackers and small firms off the VC-funded track. Nearly all of those calls ended the same way:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We should really get together and do something about how hard it is for indies to find out about business models that work for them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At some point, I started adding these folks to an empty GitHub organization, &lt;a href=&quot;https://github.com/indieopensource&quot;&gt;indieopensource&lt;/a&gt;. Today, I’m pleased to announce that the org is no longer empty. We’ve begun fleshing out &lt;a href=&quot;https://indieopensource.com&quot;&gt;indieopensource.com&lt;/a&gt; as the resource we all wish we’d had ourselves, much earlier.&lt;/p&gt;
&lt;p&gt;Within scope:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://indieopensource.com/for-indies#business-model-guides&quot;&gt;guides to business models&lt;/a&gt; that work well for solo and small-firm developers, like &lt;a href=&quot;https://indieopensource.com/paid-support/indies&quot;&gt;paid support&lt;/a&gt; and &lt;a href=&quot;https://indieopensource.com/public-private/indies&quot;&gt;public-private licensing&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;explainers for &lt;a href=&quot;https://indieopensource.com/for-users&quot;&gt;users&lt;/a&gt; and &lt;a href=&quot;https://indieopensource.com/for-contributors&quot;&gt;outside contributors&lt;/a&gt; of projects running those models&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a &lt;a href=&quot;https://indieopensource.com/indies&quot;&gt;showcase of companies&lt;/a&gt; running those models, like &lt;a href=&quot;https://metafizzy.co&quot;&gt;Metafizzy&lt;/a&gt; and &lt;a href=&quot;https://sidekiq.org&quot;&gt;Sidekiq&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a collection of &lt;a href=&quot;https://indieopensource.com/forms&quot;&gt;legal forms&lt;/a&gt; useful for those models, including a &lt;a href=&quot;https://github.com/indieopensource/paid-license&quot;&gt;paid license&lt;/a&gt;, a &lt;a href=&quot;https://github.com/indieopensource/support-contract&quot;&gt;support contract&lt;/a&gt;, and a &lt;a href=&quot;https://github.com/indieopensource/tiny-cla&quot;&gt;tiny contributor license agreement&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a directory of &lt;a href=&quot;https://indieopensource.com/services&quot;&gt;service providers&lt;/a&gt; helping to make business models cheaper and easier to run&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We’re &lt;a href=&quot;https://indieopensource.com/scope&quot;&gt;not stressing what it means to be an “indie”&lt;/a&gt;. Rather, we’re sending out a signal to collect new writing, data, and tools for mutual aid. We’re trying to become a shared and codeveloped resource.&lt;/p&gt;
&lt;p&gt;As for contribution, the project is very young, and has all the needs: design, writing, links, data about companies and service providers. The action is &lt;a href=&quot;https://github.com/indieopensource&quot;&gt;all under the GitHub organization&lt;/a&gt;, especially the &lt;a href=&quot;https://github.com/indieopensource/indieopensource.github.io&quot;&gt;repository for indieopensource.com&lt;/a&gt;.&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Open Source" /><category term="Business Models" /><category term="Forms" /><category term="Licenses" /><summary type="html">Over the past few years, I’ve had an incredible number of deep conversations about open source business models with solo hackers and small firms off the VC-funded track. Nearly all of those calls ended the same way: We should really get together and do something about how hard it is for indies to find out about business models that work for them. At some point, I started adding these folks to an empty GitHub organization, indieopensource. Today, I’m pleased to announce that the org is no longer empty. We’ve begun fleshing out indieopensource.com as the resource we all wish we’d had ourselves, much earlier. Within scope: guides to business models that work well for solo and small-firm developers, like paid support and public-private licensing explainers for users and outside contributors of projects running those models a showcase of companies running those models, like Metafizzy and Sidekiq a collection of legal forms useful for those models, including a paid license, a support contract, and a tiny contributor license agreement a directory of service providers helping to make business models cheaper and easier to run We’re not stressing what it means to be an “indie”. Rather, we’re sending out a signal to collect new writing, data, and tools for mutual aid. We’re trying to become a shared and codeveloped resource. As for contribution, the project is very young, and has all the needs: design, writing, links, data about companies and service providers. The action is all under the GitHub organization, especially the repository for indieopensource.com.</summary></entry><entry><title type="html">Open Source Software License Reading List</title><link href="https://writing.kemitchell.com/2019/02/24/License-Reading-List.html" rel="alternate" type="text/html" title="Open Source Software License Reading List" /><published>2019-02-24T00:00:00-08:00</published><updated>2019-02-24T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/02/24/License-Reading-List</id><content type="html" xml:base="https://writing.kemitchell.com/2019/02/24/License-Reading-List.html">&lt;p&gt;I’ve just published &lt;a href=&quot;/license-reading-list.html&quot;&gt;an open source software license reading list&lt;/a&gt; for those looking to get into open source software licensing.&lt;/p&gt;
&lt;p&gt;This will be my go-to guide for those asking about how to study up on open source licensing.&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Open Source" /><category term="Licensing" /><category term="Reading" /><category term="Teaching" /><summary type="html">I’ve just published an open source software license reading list for those looking to get into open source software licensing. This will be my go-to guide for those asking about how to study up on open source licensing.</summary></entry><entry><title type="html">First Thoughts on the Redis Source Available License Agreement</title><link href="https://writing.kemitchell.com/2019/02/22/Quick-Thoughts-on-Redise-Source-Available-License.html" rel="alternate" type="text/html" title="First Thoughts on the Redis Source Available License Agreement" /><published>2019-02-22T00:00:00-08:00</published><updated>2019-02-22T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/02/22/Quick-Thoughts-on-Redise-Source-Available-License</id><content type="html" xml:base="https://writing.kemitchell.com/2019/02/22/Quick-Thoughts-on-Redise-Source-Available-License.html">&lt;p&gt;Redis Labs &lt;a href=&quot;https://redislabs.com/blog/redis-labs-modules-license-changes/&quot;&gt;recently announced another change to their modules license terms&lt;/a&gt;, taking them away from the &lt;a href=&quot;https://commonsclause.com&quot;&gt;Commons Clause&lt;/a&gt;, a messaging clusterfuck for which they briefly served as poster child.&lt;/p&gt;
&lt;p&gt;A few quick thoughts on Version 1, dated February 21, 2019:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This Agreement sets forth the terms on which the Licensor makes available the Software. BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY OF THE SOFTWARE, YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO SUCH TERMS AND CONDITIONS, YOU MUST NOT USE THE SOFTWARE.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There’s lingering confusion over whether public software licenses are just licenses, contracts, or at least licenses and possibly also contracts. That &lt;a href=&quot;http://www.gnu.org/philosophy/enforcing-gpl.html&quot;&gt;distinction&lt;/a&gt; has proved &lt;a href=&quot;https://www.synopsys.com/blogs/software-security/breach-gpl-license-breach-contract/&quot;&gt;more intellectual than practical&lt;/a&gt;. Increasingly, lawyers drafting public license terms are choosing to eliminate the uncertainty, by requiring their terms to be accepted as agreements.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Database Product&lt;/strong&gt;: any of the following products or services:&lt;/p&gt;
&lt;p&gt;(a) database;&lt;/p&gt;
&lt;p&gt;(b) caching engine;&lt;/p&gt;
&lt;p&gt;(c) stream processing engine;&lt;/p&gt;
&lt;p&gt;(d) search engine;&lt;/p&gt;
&lt;p&gt;(e) indexing engine;&lt;/p&gt;
&lt;p&gt;(f) machine learning or deep learning or artificial intelligence serving engine;&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is &lt;em&gt;not&lt;/em&gt; the standardizable form everybody’s been waiting for. These points are very specific to Redis Labs, and the kinds of competing projects that concern Redis Labs. However…&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(g) a product or service exposing the Redis API;&lt;/p&gt;
&lt;p&gt;(h) a product or service exposing the Redis Modules API; or&lt;/p&gt;
&lt;p&gt;(i) a product or service exposing the Software API.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;These&lt;/em&gt; points are all highly reminiscent of the more general approach taken in my &lt;a href=&quot;https://github.com/kemitchell/api-copyleft-license&quot;&gt;API Copyleft License&lt;/a&gt;, previously called the Shared Component License, which I &lt;a href=&quot;/2019/01/30/API-Copyleft.html&quot;&gt;blogged here last month&lt;/a&gt;. The key is the API. There is hunger for license terms that protect against, or require open source release of, “wrapper” code that still exposes the API of the originally licensed software. Various drafters, from various points of view, are converging on that dividing line for rules about free-of-charge and closed-source use.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your Application&lt;/strong&gt;: an application developed by or for You, where such application is not a Database Product.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Again, Redis Labs takes fundamentally the same tack as my &lt;a href=&quot;https://github.com/kemitchell/api-copyleft-license&quot;&gt;API Copyleft License&lt;/a&gt;. We want a “safe zone” of permission for applications that &lt;em&gt;don’t&lt;/em&gt; modify or expose the licensed software’s API, but only use it. The boundary is between “applications” of the licensed software and its API, and “wrappers” that expose or enhance that API for other applications.&lt;/p&gt;
&lt;p&gt;Restricted, source-available licenses giving selective permission, based on API. Open licenses selectively applying copyleft, based on API.&lt;/p&gt;
&lt;p&gt;We’re onto something…&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="licensing" /><category term="open source" /><category term="copyleft" /><category term="open core" /><summary type="html">Redis Labs recently announced another change to their modules license terms, taking them away from the Commons Clause, a messaging clusterfuck for which they briefly served as poster child. A few quick thoughts on Version 1, dated February 21, 2019: This Agreement sets forth the terms on which the Licensor makes available the Software. BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY OF THE SOFTWARE, YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO SUCH TERMS AND CONDITIONS, YOU MUST NOT USE THE SOFTWARE. There’s lingering confusion over whether public software licenses are just licenses, contracts, or at least licenses and possibly also contracts. That distinction has proved more intellectual than practical. Increasingly, lawyers drafting public license terms are choosing to eliminate the uncertainty, by requiring their terms to be accepted as agreements. Database Product: any of the following products or services: (a) database; (b) caching engine; (c) stream processing engine; (d) search engine; (e) indexing engine; (f) machine learning or deep learning or artificial intelligence serving engine; … This is not the standardizable form everybody’s been waiting for. These points are very specific to Redis Labs, and the kinds of competing projects that concern Redis Labs. However… (g) a product or service exposing the Redis API; (h) a product or service exposing the Redis Modules API; or (i) a product or service exposing the Software API. These points are all highly reminiscent of the more general approach taken in my API Copyleft License, previously called the Shared Component License, which I blogged here last month. The key is the API. There is hunger for license terms that protect against, or require open source release of, “wrapper” code that still exposes the API of the originally licensed software. Various drafters, from various points of view, are converging on that dividing line for rules about free-of-charge and closed-source use. Your Application: an application developed by or for You, where such application is not a Database Product. Again, Redis Labs takes fundamentally the same tack as my API Copyleft License. We want a “safe zone” of permission for applications that don’t modify or expose the licensed software’s API, but only use it. The boundary is between “applications” of the licensed software and its API, and “wrappers” that expose or enhance that API for other applications. Restricted, source-available licenses giving selective permission, based on API. Open licenses selectively applying copyleft, based on API. We’re onto something…</summary></entry><entry><title type="html">API Copyleft License 1.0.0</title><link href="https://writing.kemitchell.com/2019/02/22/API-Copyleft-1.0.0.html" rel="alternate" type="text/html" title="API Copyleft License 1.0.0" /><published>2019-02-22T00:00:00-08:00</published><updated>2019-02-22T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/02/22/API-Copyleft-1.0.0</id><content type="html" xml:base="https://writing.kemitchell.com/2019/02/22/API-Copyleft-1.0.0.html">&lt;p&gt;I’m happy to announce &lt;a href=&quot;https://github.com/kemitchell/api-copyleft-license/releases/tag/v1.0.0&quot;&gt;the 1.0.0 release of the recently rechristened API Copyleft License&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This was only possible with wonderful feedback from several people:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Theo Belaire&lt;/li&gt;
&lt;li&gt;Josh Berkus&lt;/li&gt;
&lt;li&gt;Ben Hilburn&lt;/li&gt;
&lt;li&gt;Adam Jacob&lt;/li&gt;
&lt;li&gt;Alexis Richardson&lt;/li&gt;
&lt;li&gt;Luis Villa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Looking forward to more proposals and discussions &lt;a href=&quot;https://github.com/kemitchell/api-copyleft-license&quot;&gt;on GitHub&lt;/a&gt;. Version 1.0.0 is a good license. But like all the license I work on, I expect that it will continue to evolve.&lt;/p&gt;
&lt;p&gt;The text of version 1.0.0 follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h1 id=&quot;api-copyleft-license&quot;&gt;API Copyleft License&lt;/h1&gt;
&lt;p&gt;Version 1.0.0&lt;/p&gt;
&lt;p&gt;Developer: {Legal Name}&lt;/p&gt;
&lt;p&gt;Homepage: {URL}&lt;/p&gt;
&lt;h2 id=&quot;purpose&quot;&gt;Purpose&lt;/h2&gt;
&lt;p&gt;This license gives you permission to use, share, and build with this software for free, but requires you to contribute source code for changes, additions, and software that you build with it, other than applications.&lt;/p&gt;
&lt;h2 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;As far as the law allows, this software comes as is, without any warranty, and the developer will not be liable to anyone for any damages related to this software or this license, for any kind of legal claim.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;acceptance&quot;&gt;Acceptance&lt;/h2&gt;
&lt;p&gt;In order to receive this license, you must agree to its rules. Those rules are both obligations under our agreement and conditions to your license. You may not do anything with this software that triggers a rule you cannot or will not follow.&lt;/p&gt;
&lt;h2 id=&quot;copyright&quot;&gt;Copyright&lt;/h2&gt;
&lt;p&gt;The developer licenses you to do everything with this software that would otherwise infringe copyrights in this software they can license.&lt;/p&gt;
&lt;h2 id=&quot;patent&quot;&gt;Patent&lt;/h2&gt;
&lt;p&gt;The developer licenses you to do everything with this software that would otherwise infringe any patent claims they can license.&lt;/p&gt;
&lt;h2 id=&quot;reliability&quot;&gt;Reliability&lt;/h2&gt;
&lt;p&gt;The developer will not revoke this license.&lt;/p&gt;
&lt;h2 id=&quot;notices&quot;&gt;Notices&lt;/h2&gt;
&lt;p&gt;You must ensure that everyone who gets a copy of any part of this software from you, in source code or any other form, also gets the text of this license, including its developer and homepage lines.&lt;/p&gt;
&lt;h2 id=&quot;copyleft&quot;&gt;Copyleft&lt;/h2&gt;
&lt;p&gt;With two exceptions, &lt;a href=&quot;#prototypes&quot;&gt;Prototypes&lt;/a&gt; and &lt;a href=&quot;#applications&quot;&gt;Applications&lt;/a&gt;, you must contribute all software that invokes this software’s functionality, as well as changes and additions to this software, according to &lt;a href=&quot;#contributing&quot;&gt;Contributing&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;prototypes&quot;&gt;Prototypes&lt;/h2&gt;
&lt;p&gt;You need not contribute prototype changes, extensions, or applications that you do not end up using for more than fourteen calendar days, share with anyone else, or use to provide a service to anyone else.&lt;/p&gt;
&lt;h2 id=&quot;applications&quot;&gt;Applications&lt;/h2&gt;
&lt;p&gt;You need not contribute software that only invokes this software’s functionality through the interfaces this software exposes, without exposing this software’s interfaces and functionality to other software.&lt;/p&gt;
&lt;p&gt;Interfaces exposed by this software include all the interfaces this software provides users or other software to invoke its functionality, such as command line, graphical, application programming, remote procedure call, and inter-process communication interfaces.&lt;/p&gt;
&lt;h2 id=&quot;contributing&quot;&gt;Contributing&lt;/h2&gt;
&lt;p&gt;When this license requires you to contribute software:&lt;/p&gt;
&lt;p&gt;First, publish all source code for that software, in the preferred form for making changes, through a freely accessible distribution system widely used for similar source code, so the developer and others can find and copy it.&lt;/p&gt;
&lt;p&gt;Second, ensure that each part of that source code is licensed to the public under one of these:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://spdx.org/licenses/BSD-2-Clause-Patent.html&quot;&gt;The BSD-2-Clause Plus Patent License&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;terms with substantially the same legal effect as &lt;a href=&quot;#copyright&quot;&gt;Copyright&lt;/a&gt;, &lt;a href=&quot;#patent&quot;&gt;Patent&lt;/a&gt;, and &lt;a href=&quot;#reliability&quot;&gt;Reliability&lt;/a&gt;, and optionally a rule like &lt;a href=&quot;#notices&quot;&gt;Notices&lt;/a&gt;, a disclaimer like &lt;a href=&quot;#disclaimer&quot;&gt;Disclaimer&lt;/a&gt;, or both, but no other terms&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;this license&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Take these steps within thirty calendar days of creating or using the software for the first time.&lt;/p&gt;
&lt;h2 id=&quot;excuse&quot;&gt;Excuse&lt;/h2&gt;
&lt;p&gt;You are excused for unknowingly breaking &lt;a href=&quot;#notices&quot;&gt;Notices&lt;/a&gt; or &lt;a href=&quot;#copyleft&quot;&gt;Copyleft&lt;/a&gt; if you do what the rule requires, or stop doing anything requiring this license, within thirty days of learning you broke the rule.&lt;/p&gt;
&lt;/blockquote&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Copyleft" /><category term="Licensing" /><category term="Open Source" /><summary type="html">I’m happy to announce the 1.0.0 release of the recently rechristened API Copyleft License. This was only possible with wonderful feedback from several people: Theo Belaire Josh Berkus Ben Hilburn Adam Jacob Alexis Richardson Luis Villa Looking forward to more proposals and discussions on GitHub. Version 1.0.0 is a good license. But like all the license I work on, I expect that it will continue to evolve. The text of version 1.0.0 follows: API Copyleft License Version 1.0.0 Developer: {Legal Name} Homepage: {URL} Purpose This license gives you permission to use, share, and build with this software for free, but requires you to contribute source code for changes, additions, and software that you build with it, other than applications. Disclaimer As far as the law allows, this software comes as is, without any warranty, and the developer will not be liable to anyone for any damages related to this software or this license, for any kind of legal claim. Acceptance In order to receive this license, you must agree to its rules. Those rules are both obligations under our agreement and conditions to your license. You may not do anything with this software that triggers a rule you cannot or will not follow. Copyright The developer licenses you to do everything with this software that would otherwise infringe copyrights in this software they can license. Patent The developer licenses you to do everything with this software that would otherwise infringe any patent claims they can license. Reliability The developer will not revoke this license. Notices You must ensure that everyone who gets a copy of any part of this software from you, in source code or any other form, also gets the text of this license, including its developer and homepage lines. Copyleft With two exceptions, Prototypes and Applications, you must contribute all software that invokes this software’s functionality, as well as changes and additions to this software, according to Contributing. Prototypes You need not contribute prototype changes, extensions, or applications that you do not end up using for more than fourteen calendar days, share with anyone else, or use to provide a service to anyone else. Applications You need not contribute software that only invokes this software’s functionality through the interfaces this software exposes, without exposing this software’s interfaces and functionality to other software. Interfaces exposed by this software include all the interfaces this software provides users or other software to invoke its functionality, such as command line, graphical, application programming, remote procedure call, and inter-process communication interfaces. Contributing When this license requires you to contribute software: First, publish all source code for that software, in the preferred form for making changes, through a freely accessible distribution system widely used for similar source code, so the developer and others can find and copy it. Second, ensure that each part of that source code is licensed to the public under one of these: The BSD-2-Clause Plus Patent License terms with substantially the same legal effect as Copyright, Patent, and Reliability, and optionally a rule like Notices, a disclaimer like Disclaimer, or both, but no other terms this license Take these steps within thirty calendar days of creating or using the software for the first time. Excuse You are excused for unknowingly breaking Notices or Copyleft if you do what the rule requires, or stop doing anything requiring this license, within thirty days of learning you broke the rule.</summary></entry><entry><title type="html">API Copyleft</title><link href="https://writing.kemitchell.com/2019/01/30/API-Copyleft.html" rel="alternate" type="text/html" title="API Copyleft" /><published>2019-01-30T00:00:00-08:00</published><updated>2019-01-30T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/01/30/API-Copyleft</id><content type="html" xml:base="https://writing.kemitchell.com/2019/01/30/API-Copyleft.html">&lt;p&gt;I’ve been part of a group writing &lt;a href=&quot;https://github.com/kemitchell/shared-component-license/blob/master/license.md&quot;&gt;a new open source license that’s copyleft for patches, additions, and wrappers, but permissive for applications that just use through the API&lt;/a&gt;. A kind of plain-language &lt;a href=&quot;https://www.mongodb.com/licensing/server-side-public-license&quot;&gt;Server Side Public License&lt;/a&gt;. The inimitable &lt;a href=&quot;https://lu.is/&quot;&gt;Luis Villa&lt;/a&gt; really got me thinking with &lt;a href=&quot;https://twitter.com/luis_in_brief/status/1088250694010695680&quot;&gt;this tweet&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Scoping to the API for service consumers is a pretty good 2019 equivalent for the original MPL “scope for plug-ins” intention.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By “MPL”, Luis is referring to &lt;a href=&quot;https://www.mozilla.org/en-US/MPL/2.0/&quot;&gt;The Mozilla Public License, version 2.0&lt;/a&gt;, which he had a big part in writing. MPL 2.0 epitomizes “file-based copyleft”, which sets rules about what licensees have to contribute back by focusing on the computer files where source code lives:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;110--modifications&quot;&gt;1.10. “Modifications”&lt;/h2&gt;
&lt;p&gt;means any of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;any new file in Source Code Form that contains any Covered Software.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;h2 id=&quot;31--distribution-of-source-form&quot;&gt;3.1. Distribution of Source Form&lt;/h2&gt;
&lt;p&gt;All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. […]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By contrast, the license I’ve been working on focuses on whether new software goes beyond invoking the licensed software through its existing interfaces:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;copyleft&quot;&gt;Copyleft&lt;/h2&gt;
&lt;p&gt;With two exceptions, &lt;em&gt;Prototypes&lt;/em&gt; and &lt;a href=&quot;#applications&quot;&gt;&lt;em&gt;Applications&lt;/em&gt;&lt;/a&gt;, you must contribute all software that invokes this software’s functionality, as well as patches and additions to this software, according to &lt;em&gt;Contributing&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;h2 id=&quot;applications&quot;&gt;Applications&lt;/h2&gt;
&lt;p&gt;You need not contribute software that only invokes this software’s functionality through the interfaces this software exposes, without exposing this software’s interfaces and functionality to other software.&lt;/p&gt;
&lt;p&gt;Interfaces exposed by this software include all the interfaces this software provides users or other software to invoke its functionality, such as command line, graphical, application programming, remote procedure call, and inter-process communication interfaces.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The basic drafting challenge for this kind of license boils down to a line-drawing problem. We could put software that builds on other software on a spectrum:&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;patches extensions applications wrappers
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The goal of the license is to scope copyleft selectively, to miss applications, but cover everything else:&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;patches extensions applications wrappers
copyleft copyleft PERMISSIVE copyleft
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;With that in mind, the license needs to draw two lines, one between extensions and applications, the other between applications and wrappers:&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; 1 2
patches extensions | applications | wrappers
copyleft copyleft | PERMISSIVE | copyleft
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Earlier versions of the license drew each of these lines in separate language, using different words and concepts. But the current draft draws both lines with the same words and concepts: functionality and interfaces of the licensed software.&lt;/p&gt;
&lt;p&gt;How do we distinguish applications from extensions? Extensions go beyond accessing the licensed software through the interfaces it already exposes. How do we distinguish applications from wrappers? Wrappers make the licensed software’s interfaces or functionality available to still other applications.&lt;/p&gt;
&lt;p&gt;The interface-functionality concept is a kind of pun. It just so happens that we can draw both extension-application and application-wrapper lines with it. Coincidentally, that seems to achieve the goals of the license very nicely.&lt;/p&gt;
&lt;p&gt;The inimitable &lt;a href=&quot;https://blog.codinghorror.com/&quot;&gt;Jeff Atwood&lt;/a&gt; caught onto this pretty much immediately, and responded to my pleas for help renaming the form, in &lt;a href=&quot;https://twitter.com/codinghorror/status/1090126535590170624&quot;&gt;these&lt;/a&gt; &lt;a href=&quot;https://twitter.com/codinghorror/status/1090129373733171200&quot;&gt;tweets&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The tell is that you keep using the word API to describe it. That needs to be in the name.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I still think you’re going to be in a world of hurt unless you go with API License. You can explain the other exceptions more easily than “interface boundary”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I quibble, because API is just one kind of interface, and the license covers many kinds. I’m right, but I think Jeff is, too. It’s a little strange to name a specific license after the licensing &lt;em&gt;paradigm&lt;/em&gt; it represents. &lt;a href=&quot;https://github.com/kemitchell/shared-component-license/issues/18&quot;&gt;But why not just “API Copyleft License”?&lt;/a&gt;&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Copyleft" /><category term="Licensing" /><category term="Open Source" /><category term="SSPL" /><summary type="html">I’ve been part of a group writing a new open source license that’s copyleft for patches, additions, and wrappers, but permissive for applications that just use through the API. A kind of plain-language Server Side Public License. The inimitable Luis Villa really got me thinking with this tweet: Scoping to the API for service consumers is a pretty good 2019 equivalent for the original MPL “scope for plug-ins” intention. By “MPL”, Luis is referring to The Mozilla Public License, version 2.0, which he had a big part in writing. MPL 2.0 epitomizes “file-based copyleft”, which sets rules about what licensees have to contribute back by focusing on the computer files where source code lives: 1.10. “Modifications” means any of the following: any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or any new file in Source Code Form that contains any Covered Software. […] 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. […] By contrast, the license I’ve been working on focuses on whether new software goes beyond invoking the licensed software through its existing interfaces: Copyleft With two exceptions, Prototypes and Applications, you must contribute all software that invokes this software’s functionality, as well as patches and additions to this software, according to Contributing. […] Applications You need not contribute software that only invokes this software’s functionality through the interfaces this software exposes, without exposing this software’s interfaces and functionality to other software. Interfaces exposed by this software include all the interfaces this software provides users or other software to invoke its functionality, such as command line, graphical, application programming, remote procedure call, and inter-process communication interfaces. The basic drafting challenge for this kind of license boils down to a line-drawing problem. We could put software that builds on other software on a spectrum: patches extensions applications wrappers The goal of the license is to scope copyleft selectively, to miss applications, but cover everything else: patches extensions applications wrappers copyleft copyleft PERMISSIVE copyleft With that in mind, the license needs to draw two lines, one between extensions and applications, the other between applications and wrappers: 1 2 patches extensions | applications | wrappers copyleft copyleft | PERMISSIVE | copyleft Earlier versions of the license drew each of these lines in separate language, using different words and concepts. But the current draft draws both lines with the same words and concepts: functionality and interfaces of the licensed software. How do we distinguish applications from extensions? Extensions go beyond accessing the licensed software through the interfaces it already exposes. How do we distinguish applications from wrappers? Wrappers make the licensed software’s interfaces or functionality available to still other applications. The interface-functionality concept is a kind of pun. It just so happens that we can draw both extension-application and application-wrapper lines with it. Coincidentally, that seems to achieve the goals of the license very nicely. The inimitable Jeff Atwood caught onto this pretty much immediately, and responded to my pleas for help renaming the form, in these tweets: The tell is that you keep using the word API to describe it. That needs to be in the name. I still think you’re going to be in a world of hurt unless you go with API License. You can explain the other exceptions more easily than “interface boundary” I quibble, because API is just one kind of interface, and the license covers many kinds. I’m right, but I think Jeff is, too. It’s a little strange to name a specific license after the licensing paradigm it represents. But why not just “API Copyleft License”?</summary></entry><entry><title type="html">Critique This License</title><link href="https://writing.kemitchell.com/2019/01/27/Criticize-This-License.html" rel="alternate" type="text/html" title="Critique This License" /><published>2019-01-27T00:00:00-08:00</published><updated>2019-01-27T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/01/27/Criticize-This-License</id><content type="html" xml:base="https://writing.kemitchell.com/2019/01/27/Criticize-This-License.html">&lt;p&gt;&lt;em&gt;Update: Thanks to some great feedback, this license form has evolved considerably. See &lt;a href=&quot;https://commonform.org/kemitchell/proprietary-software-license/latest&quot;&gt;the latest draft on commonform.org&lt;/a&gt; for the most recent text.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I’m working on a short, minimal, but adaptable paid software license. I’d be grateful for feedback from colleagues and &lt;em&gt;especially&lt;/em&gt; non-lawyer programmers and business people.&lt;/p&gt;
&lt;p&gt;You can &lt;a href=&quot;https://docs.google.com/document/d/1rgmbrS92_mGmMg8kuL9uWThtLtH99k13qkqPOaDx6jc/edit?usp=sharing&quot;&gt;make comments on this Google Doc&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The terms work with an “Order Form” that sets out essential details and key terms, like who is buying from who, what software they’re buying, what versions are covered, and whether the vendor is agreeing to an extended patent warranty. Vendor and customer sign the order form, which references the legal terms.&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Contracts" /><category term="Forms" /><category term="Software" /><summary type="html">Update: Thanks to some great feedback, this license form has evolved considerably. See the latest draft on commonform.org for the most recent text. I’m working on a short, minimal, but adaptable paid software license. I’d be grateful for feedback from colleagues and especially non-lawyer programmers and business people. You can make comments on this Google Doc. The terms work with an “Order Form” that sets out essential details and key terms, like who is buying from who, what software they’re buying, what versions are covered, and whether the vendor is agreeing to an extended patent warranty. Vendor and customer sign the order form, which references the legal terms.</summary></entry><entry><title type="html">Shared Component License</title><link href="https://writing.kemitchell.com/2019/01/12/Shared-Component-License.html" rel="alternate" type="text/html" title="Shared Component License" /><published>2019-01-12T00:00:00-08:00</published><updated>2019-01-12T00:00:00-08:00</updated><id>https://writing.kemitchell.com/2019/01/12/Shared-Component-License</id><content type="html" xml:base="https://writing.kemitchell.com/2019/01/12/Shared-Component-License.html">&lt;p&gt;Those following the public back-and-forth on MongoDB’s new &lt;a href=&quot;https://www.mongodb.com/licensing/server-side-public-license&quot;&gt;Service Side Public License&lt;/a&gt; will have noticed that I think SSPL is open source, but not well crafted. The choice to &lt;a href=&quot;https://webassets.mongodb.com/_com_assets/legal/SSPL-compared-to-AGPL.pdf&quot;&gt;patch AGPLv3&lt;/a&gt; made everything hard. I should know. I made the same mistake with &lt;a href=&quot;https://licensezero.com/licenses/parity&quot;&gt;my own strong-copyleft license&lt;/a&gt;. Starting from BSD was bad enough to induce a rewrite from scratch. AGPLv3 is magnitudes worse, in ways glaring and subtle. Case in point: SSPL’s most important section is buried 4,100 words and 12 sections down.&lt;/p&gt;
&lt;p&gt;The licensing project SSPL represents matters. The best criticism comes in-kind. So that’s the kind of criticism SSPL deserves. I’ve been laid up for weeks with an injury, and found myself with the time.&lt;/p&gt;
&lt;p&gt;Follows now a first draft of a plain language license inspired by SSPL. This has &lt;em&gt;not&lt;/em&gt; been shopped with other lawyers to date, and is not ready for use. I’m looking forward to reviewing, discussing, and refining &lt;a href=&quot;https://github.com/kemitchell/shared-component-license&quot;&gt;on GitHub&lt;/a&gt;. If you’re interested, watch the repository or &lt;a href=&quot;mailto:kyle@kemitchell.com&quot;&gt;drop me a line&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h1 id=&quot;shared-component-license&quot;&gt;Shared Component License&lt;/h1&gt;
&lt;p&gt;Developer: {Legal Name}&lt;/p&gt;
&lt;p&gt;Homepage: {URL}&lt;/p&gt;
&lt;h2 id=&quot;purpose&quot;&gt;Purpose&lt;/h2&gt;
&lt;p&gt;This license gives you broad permission to work with this software for any purpose, but requires you to contribute source code for changes, additions, and superstructure.&lt;/p&gt;
&lt;h2 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;As far as the law allows, this software comes as is, without any warranty, and the developer will not be liable to anyone for any damages related to this software or this license, for any kind of legal claim.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;acceptance&quot;&gt;Acceptance&lt;/h2&gt;
&lt;p&gt;In order to receive this license, you must agree to its rules. The rules of this license are both obligations under our agreement and conditions to your license. You may not do anything with this software that triggers a rule you cannot or will not follow.&lt;/p&gt;
&lt;h2 id=&quot;copyright&quot;&gt;Copyright&lt;/h2&gt;
&lt;p&gt;The developer licenses you to do everything with this software that would otherwise infringe copyrights in this software they can license.&lt;/p&gt;
&lt;h2 id=&quot;patent&quot;&gt;Patent&lt;/h2&gt;
&lt;p&gt;The developer licenses you to do everything with this software that would otherwise infringe any patent claims they can license.&lt;/p&gt;
&lt;h2 id=&quot;reliability&quot;&gt;Reliability&lt;/h2&gt;
&lt;p&gt;The developer will not revoke this license.&lt;/p&gt;
&lt;h2 id=&quot;notices&quot;&gt;Notices&lt;/h2&gt;
&lt;p&gt;You must ensure that everyone who gets a copy of any part of this software from you, in source code or any other form, with or without changes, also gets the text of this license, including its developer and homepage lines.&lt;/p&gt;
&lt;h2 id=&quot;contribution&quot;&gt;Contribution&lt;/h2&gt;
&lt;p&gt;When this license requires you to contribute software:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Publish all source code for that software, in the preferred form for making changes, through a freely accessible distribution system widely used for similar source code, so the developer and others can find and copy it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;License that software under the terms of this license, so the developer and others may work with that software. Alternatively, you may license that software on other terms with substantially the same legal effect as &lt;a href=&quot;#copyright&quot;&gt;Copyright&lt;/a&gt;, &lt;a href=&quot;#patent&quot;&gt;Patent&lt;/a&gt;, and &lt;a href=&quot;#reliability&quot;&gt;Reliability&lt;/a&gt;. Your other terms may, but need not, include a rule like &lt;a href=&quot;#notices&quot;&gt;Notices&lt;/a&gt;, a disclaimer like &lt;a href=&quot;#disclaimer&quot;&gt;Disclaimer&lt;/a&gt;, or both, but no other terms. For example, you may license under the &lt;a href=&quot;https://spdx.org/licenses/BSD-2-Clause-Patent.html&quot;&gt;BSD-2-Clause Plus Patent License&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;changes&quot;&gt;Changes&lt;/h2&gt;
&lt;p&gt;Contribute changes to files containing this software.&lt;/p&gt;
&lt;h2 id=&quot;additions&quot;&gt;Additions&lt;/h2&gt;
&lt;p&gt;Contribute additions to this software. You need not contribute additions to other software that only invokes this software’s functionality through the interfaces this software exposes, unless &lt;a href=&quot;#superstructure&quot;&gt;Superstructure&lt;/a&gt; requires.&lt;/p&gt;
&lt;h2 id=&quot;applications&quot;&gt;Applications&lt;/h2&gt;
&lt;p&gt;You need not contribute applications that only invoke this software’s functionality through the interfaces this software exposes, unless &lt;a href=&quot;#superstructure&quot;&gt;Superstructure&lt;/a&gt; requires.&lt;/p&gt;
&lt;h2 id=&quot;superstructure&quot;&gt;Superstructure&lt;/h2&gt;
&lt;p&gt;Contribute software used to expose this software’s interfaces and functionality to applications. For example, contribute software for managing instances of this software, orchestrating its deployment, logging its activity, monitoring its performance, or backing up its data.&lt;/p&gt;
&lt;h2 id=&quot;interfaces&quot;&gt;Interfaces&lt;/h2&gt;
&lt;p&gt;Interfaces exposed by this software include all the interfaces this software provides users or other software to invoke its functionality. For example, command line, graphical, application programming, remote procedure call, and inter-process communication interfaces.&lt;/p&gt;
&lt;h2 id=&quot;excuse&quot;&gt;Excuse&lt;/h2&gt;
&lt;p&gt;You are excused for unknowingly breaking &lt;a href=&quot;#notices&quot;&gt;Notices&lt;/a&gt;, &lt;a href=&quot;#changes&quot;&gt;Changes&lt;/a&gt;, &lt;a href=&quot;#additions&quot;&gt;Additions&lt;/a&gt;, or &lt;a href=&quot;#superstructure&quot;&gt;Superstructure&lt;/a&gt; if you do what the rule requires, or stop doing anything requiring this license, within 30 days of learning you broke the rule.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;How does this draft compare to SSPL, substantively?&lt;/p&gt;
&lt;p&gt;Like SSPL, the draft substantially strengthens copyleft. It follows the line of &lt;a href=&quot;https://opensource.org/licenses/OSL-3.0&quot;&gt;OSL&lt;/a&gt;, &lt;a href=&quot;https://www.gnu.org/licenses/agpl-3.0.en.html&quot;&gt;AGPLv3&lt;/a&gt;, &lt;a href=&quot;https://opensource.org/licenses/QPL-1.0&quot;&gt;Q&lt;/a&gt;, and &lt;a href=&quot;https://opensource.org/licenses/RPL-1.5&quot;&gt;RPL&lt;/a&gt; in that respect.&lt;/p&gt;
&lt;p&gt;Like SSPL, the draft applies that strengthened copyleft selectively. In particular, the draft carves out a permissive use case: building applications using the licensed code. I’ve &lt;a href=&quot;https://writing.kemitchell.com/2018/11/04/Copyleft-Bust-Up.html#commercial&quot;&gt;written about that innovation and its political consequences&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unlike SSPL, the draft uses different rules to draw the boundary between changes and additions that have to be contributed, and applications that don’t. As a baseline, the draft uses an &lt;a href=&quot;https://www.mozilla.org/en-US/MPL/2.0/&quot;&gt;MPL 2.0&lt;/a&gt;-style, file-based copyleft. On top of that, the draft sweeps additions to the functionality of the licensed software by drawing a boundary at the interfaces the licensed software exposes.&lt;/p&gt;
&lt;p&gt;Like SSPL, the draft follows network-copyleft licenses in triggering copyleft without distribution, and reciprocal licenses in requiring publication, rather than in-band distribution, of source. SSPL has to trigger that way for service superstructure, since service superstructure code isn’t distributed to service users. But SSPL keeps GPL-style copyleft for changes and additions. Using the same distribution requirement for all kinds of code in the scope of copyleft brings the draft closer to &lt;a href=&quot;https://opensource.org/licenses/RPL-1.5&quot;&gt;RPL&lt;/a&gt;. The draft is &lt;a href=&quot;https://writing.kemitchell.com/2018/08/28/Unhappy-Coincidences.html#software-freedom-doesnt-mean-patches-back&quot;&gt;an actual patches-back license&lt;/a&gt;, not a patches-forward license that only incidentally empowers users to send code back.&lt;/p&gt;
&lt;p&gt;Unlike SSPL, the draft generalizes from service programs to all programs, by drawing the line using an abstraction: interfaces to functionality. Within the draft, “interfaces” means not just APIs, but CLIs, RPCs, IPCs, or similar mechanisms. The line between code extending the licensed software that must be contributed back—change or addition—and code that need not—application—is whether the other software merely uses the licensed software through the interfaces it exposes.&lt;/p&gt;
&lt;p&gt;Unlike SSPL, the draft gives users the option to license the code contributed back under permissive terms. SSPLv2 added some of this flexibility for code within its sweep that the licensee lacks the rights to relicense. Under the draft, permissive is always an option.&lt;/p&gt;
&lt;p&gt;Like SSPL, which inherited from AGPL, the draft include an automatic-forgiveness provisions for unknowing violations of license rules. SSPL uses a more formal notice protocol. This draft follows Parity in turning on knowledge, which notice of a violation can induce.&lt;/p&gt;
&lt;p&gt;Of course, these are hardly all the similarities and differences. But at less than 550 words, it’s quick enough to read the whole license.&lt;/p&gt;
&lt;p&gt;The key issues in my mind, going forward:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What parts won’t be clear to developers? Any confusing parts?&lt;/li&gt;
&lt;li&gt;Can we improve the boundary between changes and additions, on the one hand, and applications, on the other?&lt;/li&gt;
&lt;li&gt;Can we improve the boundary between applications and superstructure?&lt;/li&gt;
&lt;li&gt;Can we find a better term than “superstructure”?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/kemitchell/shared-component-license/issues/new&quot;&gt;Open an issue on GitHub&lt;/a&gt; or &lt;a href=&quot;mailto:kyle@kemitchell.com&quot;&gt;drop me an e-mail&lt;/a&gt; anytime.&lt;/p&gt;</content><author><name>Kyle E. Mitchell</name></author><category term="Copyleft" /><category term="Licensing" /><category term="Open Source" /><category term="SSPL" /><summary type="html">Those following the public back-and-forth on MongoDB’s new Service Side Public License will have noticed that I think SSPL is open source, but not well crafted. The choice to patch AGPLv3 made everything hard. I should know. I made the same mistake with my own strong-copyleft license. Starting from BSD was bad enough to induce a rewrite from scratch. AGPLv3 is magnitudes worse, in ways glaring and subtle. Case in point: SSPL’s most important section is buried 4,100 words and 12 sections down. The licensing project SSPL represents matters. The best criticism comes in-kind. So that’s the kind of criticism SSPL deserves. I’ve been laid up for weeks with an injury, and found myself with the time. Follows now a first draft of a plain language license inspired by SSPL. This has not been shopped with other lawyers to date, and is not ready for use. I’m looking forward to reviewing, discussing, and refining on GitHub. If you’re interested, watch the repository or drop me a line. Shared Component License Developer: {Legal Name} Homepage: {URL} Purpose This license gives you broad permission to work with this software for any purpose, but requires you to contribute source code for changes, additions, and superstructure. Disclaimer As far as the law allows, this software comes as is, without any warranty, and the developer will not be liable to anyone for any damages related to this software or this license, for any kind of legal claim. Acceptance In order to receive this license, you must agree to its rules. The rules of this license are both obligations under our agreement and conditions to your license. You may not do anything with this software that triggers a rule you cannot or will not follow. Copyright The developer licenses you to do everything with this software that would otherwise infringe copyrights in this software they can license. Patent The developer licenses you to do everything with this software that would otherwise infringe any patent claims they can license. Reliability The developer will not revoke this license. Notices You must ensure that everyone who gets a copy of any part of this software from you, in source code or any other form, with or without changes, also gets the text of this license, including its developer and homepage lines. Contribution When this license requires you to contribute software: Publish all source code for that software, in the preferred form for making changes, through a freely accessible distribution system widely used for similar source code, so the developer and others can find and copy it. License that software under the terms of this license, so the developer and others may work with that software. Alternatively, you may license that software on other terms with substantially the same legal effect as Copyright, Patent, and Reliability. Your other terms may, but need not, include a rule like Notices, a disclaimer like Disclaimer, or both, but no other terms. For example, you may license under the BSD-2-Clause Plus Patent License. Changes Contribute changes to files containing this software. Additions Contribute additions to this software. You need not contribute additions to other software that only invokes this software’s functionality through the interfaces this software exposes, unless Superstructure requires. Applications You need not contribute applications that only invoke this software’s functionality through the interfaces this software exposes, unless Superstructure requires. Superstructure Contribute software used to expose this software’s interfaces and functionality to applications. For example, contribute software for managing instances of this software, orchestrating its deployment, logging its activity, monitoring its performance, or backing up its data. Interfaces Interfaces exposed by this software include all the interfaces this software provides users or other software to invoke its functionality. For example, command line, graphical, application programming, remote procedure call, and inter-process communication interfaces. Excuse You are excused for unknowingly breaking Notices, Changes, Additions, or Superstructure if you do what the rule requires, or stop doing anything requiring this license, within 30 days of learning you broke the rule. How does this draft compare to SSPL, substantively? Like SSPL, the draft substantially strengthens copyleft. It follows the line of OSL, AGPLv3, Q, and RPL in that respect. Like SSPL, the draft applies that strengthened copyleft selectively. In particular, the draft carves out a permissive use case: building applications using the licensed code. I’ve written about that innovation and its political consequences. Unlike SSPL, the draft uses different rules to draw the boundary between changes and additions that have to be contributed, and applications that don’t. As a baseline, the draft uses an MPL 2.0-style, file-based copyleft. On top of that, the draft sweeps additions to the functionality of the licensed software by drawing a boundary at the interfaces the licensed software exposes. Like SSPL, the draft follows network-copyleft licenses in triggering copyleft without distribution, and reciprocal licenses in requiring publication, rather than in-band distribution, of source. SSPL has to trigger that way for service superstructure, since service superstructure code isn’t distributed to service users. But SSPL keeps GPL-style copyleft for changes and additions. Using the same distribution requirement for all kinds of code in the scope of copyleft brings the draft closer to RPL. The draft is an actual patches-back license, not a patches-forward license that only incidentally empowers users to send code back. Unlike SSPL, the draft generalizes from service programs to all programs, by drawing the line using an abstraction: interfaces to functionality. Within the draft, “interfaces” means not just APIs, but CLIs, RPCs, IPCs, or similar mechanisms. The line between code extending the licensed software that must be contributed back—change or addition—and code that need not—application—is whether the other software merely uses the licensed software through the interfaces it exposes. Unlike SSPL, the draft gives users the option to license the code contributed back under permissive terms. SSPLv2 added some of this flexibility for code within its sweep that the licensee lacks the rights to relicense. Under the draft, permissive is always an option. Like SSPL, which inherited from AGPL, the draft include an automatic-forgiveness provisions for unknowing violations of license rules. SSPL uses a more formal notice protocol. This draft follows Parity in turning on knowledge, which notice of a violation can induce. Of course, these are hardly all the similarities and differences. But at less than 550 words, it’s quick enough to read the whole license. The key issues in my mind, going forward: What parts won’t be clear to developers? Any confusing parts? Can we improve the boundary between changes and additions, on the one hand, and applications, on the other? Can we improve the boundary between applications and superstructure? Can we find a better term than “superstructure”? Open an issue on GitHub or drop me an e-mail anytime.</summary></entry></feed>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment