A place to cache linked articles (think custom and personal wayback machine)
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.html 54KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>The MIT License, Line by Line (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. The MIT License, Line by Line (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html">Source originale du contenu</a></h3>
  445. <p><a href="http://spdx.org/licenses/MIT">The MIT License</a> is the most popular open-source software
  446. license. Here’s one read of it, line by line.</p>
  447. <h2 id="read-the-license">Read the License</h2>
  448. <p>If you’re involved in open-source software and haven’t taken the time
  449. to read the license from top to bottom—it’s only 171 words—you need
  450. to do so now. Especially if licenses aren’t your day-to-day. Make a
  451. mental note of anything that seems off or unclear, and keep trucking.
  452. I’ll repeat every word again, in chunks and in order, with context
  453. and commentary. But it’s important to have the whole in mind.</p>
  454. <blockquote>
  455. <p>The MIT License (MIT)</p>
  456. <p>Copyright (c) &lt;year&gt; &lt;copyright holders&gt;</p>
  457. <p>Permission is hereby granted, free of charge, to any person obtaining
  458. a copy of this software and associated documentation files (the
  459. “Software”), to deal in the Software without restriction, including
  460. without limitation the rights to use, copy, modify, merge, publish,
  461. distribute, sublicense, and/or sell copies of the Software, and to
  462. permit persons to whom the Software is furnished to do so, subject to
  463. the following conditions:</p>
  464. <p>The above copyright notice and this permission notice shall be
  465. included in all copies or substantial portions of the Software.</p>
  466. <p><em>The Software is provided “as is”, without warranty of any kind,
  467. express or implied, including but not limited to the warranties of
  468. merchantability, fitness for a particular purpose and noninfringement.
  469. In no event shall the authors or copyright holders be liable for any
  470. claim, damages or other liability, whether in an action of contract,
  471. tort or otherwise, arising from, out of or in connection with the
  472. software or the use or other dealings in the Software.</em></p>
  473. </blockquote>
  474. <p>The license is arranged in five paragraphs, but breaks down logically
  475. like this:</p>
  476. <ul>
  477. <li><strong>Header</strong>
  478. <ul>
  479. <li><strong>License Title</strong>: “The MIT License”</li>
  480. <li><strong>Copyright Notice</strong>: “Copyright (c) …”</li>
  481. </ul>
  482. </li>
  483. <li><strong>License Grant</strong>: “Permission is hereby granted …”
  484. <ul>
  485. <li><strong>Grant Scope</strong>: “… to deal in the Software …”</li>
  486. <li><strong>Conditions</strong>: “… subject to …”
  487. <ul>
  488. <li><strong>Attribution and Notice</strong>: “The above … shall be included …”</li>
  489. <li><strong>Warranty Disclaimer</strong>: “<em>The software is provided ‘as is’ …</em>”</li>
  490. <li><strong>Limitation of Liability</strong>: “<em>In no event …</em>”</li>
  491. </ul>
  492. </li>
  493. </ul>
  494. </li>
  495. </ul>
  496. <p>Here we go:</p>
  497. <h2 id="header">Header</h2>
  498. <h3 id="license-title">License Title</h3>
  499. <blockquote>
  500. <p>The MIT License (MIT)</p>
  501. </blockquote>
  502. <p>“The MIT License” is a not a single license, but a family of
  503. license forms derived from language prepared for releases from the
  504. Massachusetts Institute of Technology. It has seen a lot of changes
  505. over the years, both for the original projects that used it, and also
  506. as a model for other projects. The Fedora Project maintains a <a href="https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT">kind of
  507. cabinet of MIT license curiosities</a>, with insipid variations
  508. preserved in plain text like anatomical specimens in formaldehyde,
  509. tracing a wayward kind of evolution.</p>
  510. <p>Fortunately, the <a href="https://opensource.org">Open Source Initiative</a> and <a href="https://spdx.org">Software Package
  511. Data eXchange</a> groups have standardized a generic MIT-style
  512. license form as “The MIT License”. OSI in turn has adopted SPDX’
  513. standardized <a href="http://spdx.org/licenses/">string identifiers</a> for common open-source
  514. licenses, with <code class="highlighter-rouge">MIT</code> pointing unambiguously to the standardized form
  515. “MIT License”. If you want MIT-style terms for a new project, use
  516. <a href="http://spdx.org/licenses/MIT">the standardized form</a>.</p>
  517. <p>Even if you include “The MIT License” or “SPDX:MIT” in a <code class="highlighter-rouge">LICENSE</code>
  518. file, any responsible reviewer will still run a comparison of the text
  519. against the standard form, just to be sure. While various license
  520. forms calling themselves “MIT License” vary only in minor details, the
  521. looseness of what counts as an “MIT License” has tempted some authors
  522. into adding bothersome “customizations”. The canonical horrible,
  523. no good, very bad example of this is <a href="https://spdx.org/licenses/JSON">the JSON license</a>,
  524. an MIT-family license plus “The Software shall be used for Good,
  525. not Evil.”. This kind of thing might be “very Crockford”. It is
  526. definitely a pain in the ass. Maybe the joke was supposed to be on
  527. the lawyers. But they laughed all the way to the bank.</p>
  528. <p>Moral of the story: “MIT License” alone is ambiguous. Folks probably
  529. have a good idea what you mean by it, but you’re only going to save
  530. everyone—yourself included—time by copying the text of the standard
  531. MIT License form into your project. If you use metadata, like the
  532. <code class="highlighter-rouge">license</code> property in package manager metadata files, to designate the
  533. <code class="highlighter-rouge">MIT</code> license, make sure your <code class="highlighter-rouge">LICENSE</code> file and any header comments
  534. use the standard form text. All of this can be <a href="https://www.npmjs.com/package/licensor">automated</a>.</p>
  535. <h3 id="copyright-notice">Copyright Notice</h3>
  536. <blockquote>
  537. <p>Copyright (c) &lt;year&gt; &lt;copyright holders&gt;</p>
  538. </blockquote>
  539. <p>Until the 1976 Copyright Act, United States copyright law required
  540. specific actions, called “formalities”, to secure copyright in
  541. creative works. If you didn’t follow those formalities, your rights
  542. to sue others for unauthorized use of your work were limited, often
  543. completely lost. One of those formalities was “notice”: Putting
  544. marks on your work and otherwise making it known to the market that
  545. you were claiming copyright. The © is a standard symbol for
  546. marking copyrighted works, to give notice of copyright. The ASCII
  547. character set doesn’t have the © symbol, but <code class="highlighter-rouge">Copyright (c)</code>
  548. gets the same point across.</p>
  549. <p>The 1976 Copyright Act, which “implemented” many requirements
  550. of the international Berne Convention, eliminated formalities
  551. for securing copyright. At least in the United States, copyright
  552. holders still need to register their copyrighted works before suing
  553. for infringement, with potentially higher damages if they register
  554. before infringement begins. In practice, however, many register
  555. copyright right before bringing suit against someone in particular.
  556. You don’t lose your copyright just by failing to put notices on it,
  557. registering, sending a copy to the Library of Congress, and so on.</p>
  558. <p>Even if copyright notices aren’t as absolutely necessary as they used
  559. to be, they are still plenty useful. Stating the year a work was
  560. authored and who the copyright belonged to give some sense of when
  561. copyright in the work might expire, bringing the work into the public
  562. domain. The identity of the author or authors is also useful: United
  563. States law calculates copyright terms differently for individual and
  564. “corporate” authors. Especially in business use, it may also behoove
  565. a company to think twice about using software from a known competitor,
  566. even if the license terms give very generous permission. If you’re
  567. hoping others will see your work and want to license it from you,
  568. copyright notices serve nicely for attribution.</p>
  569. <p>As for “copyright holder”: Not all standard form licenses have a space
  570. to write this out. More recent license forms, like <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>
  571. and <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPL 3.0</a>, publish <code class="highlighter-rouge">LICENSE</code> texts that are meant to be copied
  572. verbatim, with header comments and separate files elsewhere to indicate
  573. who owns copyright and is giving the license. Those approaches neatly
  574. discourage changes to the “standard” texts, accidental or intentional.
  575. They also make automated license identification more reliable.</p>
  576. <p>The MIT License descends from language written for releases of
  577. code by institutions. For institutional releases, there was
  578. just one clear “copyright holder”, the institution releasing
  579. the code. Other institutions cribbed these licenses, replacing
  580. “MIT” with their own names, leading eventually to the generic
  581. forms we have now. This process repeated for other short-form
  582. institutional licenses of the era, notably the <a href="http://spdx.org/licenses/BSD-4-Clause">original four-clause
  583. BSD License</a> for the University of California, Berkeley,
  584. now used in <a href="https://spdx.org/licenses/BSD-3-Clause">three-clause</a> and <a href="https://spdx.org/licenses/BSD-2-Clause">two-clause</a>
  585. variants, as well as <a href="http://www.isc.org/downloads/software-support-policy/isc-license/">The ISC License</a> for the Internet Systems
  586. Consortium, an MIT variant.</p>
  587. <p>In each case, the institution listed itself as the copyright holder
  588. in reliance on rules of copyright ownership, called “<a href="http://worksmadeforhire.com/">works made
  589. for hire</a>” rules, that give employers and clients ownership of
  590. copyright in some work their employees and contractors do on their
  591. behalf. These rules don’t usually apply to distributed collaborators
  592. submitting code voluntarily. This poses a problem for project-steward
  593. foundations, like the Apache Foundation and Eclipse Foundation, that
  594. accept contributions from a more diverse group of contributors.
  595. The usual foundation approach thus far has been to use a house
  596. license that states a single copyright holder—<a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a> and
  597. <a href="https://www.eclipse.org/legal/epl-v10.html">EPL 1.0</a>—backed up by contributor license agreements—<a href="https://www.apache.org/licenses/#clas">Apache
  598. CLAs</a> and <a href="https://wiki.eclipse.org/ECA">Eclipse CLAs</a>—to collect rights from contributors.
  599. Collecting copyright ownership in one place is even more important
  600. under “copyleft” licenses like the GPL, which rely on copyright owners
  601. to enforce license conditions to promote software-freedom values.</p>
  602. <p>These days, loads of projects without any kind of institutional or
  603. business steward use MIT-style license terms. SPDX and OSI have
  604. helped these use cases by standardizing forms of licenses like
  605. MIT and ISC that don’t refer to a specific entity or institutional
  606. copyright holder. Armed with those forms, the prevailing practice of
  607. project authors is to fill their own name in the copyright notice of
  608. the form very early on … and maybe bump the year here and there.
  609. At least under United States copyright law, the resulting copyright
  610. notice doesn’t give a full picture.</p>
  611. <p>The original owner of a piece of software retains ownership of their
  612. work. But while MIT-style license terms give others rights to build
  613. on and change the software, creating what the law calls “derivative
  614. works”, they don’t give the original author ownership of copyright in
  615. others’ contributions. Rather, each contributor has copyright in any
  616. <a href="https://en.wikipedia.org/wiki/Feist_Publications,_Inc.,_v._Rural_Telephone_Service_Co.">even marginally creative</a> work they make using the existing
  617. code as a starting point.</p>
  618. <p>Most of these projects also balk at the idea of taking contributor
  619. license agreements, to say nothing of signed copyright assignments.
  620. That’s both naive and understandable. Despite the assumption of
  621. some newer open-source developers that sending a pull request on
  622. GitHub “automatically” licenses the contribution for distribution
  623. on the terms of the project’s existing license, United States law
  624. doesn’t recognize any such rule. Strong copyright <em>protection</em>,
  625. not permissive licensing, is the default.</p>
  626. <p><em>Update: GitHub later changed its site-wide terms of service to
  627. include an attempt to flip this default, at least on GitHub.com.
  628. I’ve written up some thoughts on that development, not all of them
  629. positive, in <a href="https://writing.kemitchell.com/2017/02/16/Against-Legislating-the-Nonobvious.html">another post</a>.</em></p>
  630. <p>To fill the gap between legally effective, well-documented grants
  631. of rights in contributions and no paper trail at all, some projects
  632. have adopted the <a href="http://developercertificate.org/">Developer Certificate of Origin</a>, a standard
  633. statement contributors allude to using <code class="highlighter-rouge">Signed-Off-By</code> metadata tags in
  634. their Git commits. The Developer Certificate of Origin was developed
  635. for Linux kernel development in the wake of the infamous SCO lawsuits,
  636. which alleged that chunks of Linux’ code derived from SCO-owned Unix
  637. source. As a means of creating a paper trail showing that each line
  638. of Linux came from a contributor, the Developer Certificate of Origin
  639. functions nicely. While the Developer Certificate of Origin isn’t a
  640. license, it does provide lots of good evidence that those submitting
  641. code expected the project to distribute their code, and for others
  642. to use it under the kernel’s existing license terms. The kernel also
  643. maintains a machine-readable <code class="highlighter-rouge">CREDITS</code> file listing contributors with
  644. name, affiliation, contribution area, and other metadata. I’ve done
  645. <a href="https://github.com/berneout/berneout-pledge">some</a> <a href="https://github.com/berneout/authors-certificate">experiments</a> adapting that approach for
  646. projects that don’t use the kernel’s development flow.</p>
  647. <h2 id="license-grant">License Grant</h2>
  648. <blockquote>
  649. <p>Permission is hereby granted, free of charge, to any person obtaining
  650. a copy of this software and associated documentation files (the
  651. “Software”),</p>
  652. </blockquote>
  653. <p>The meat of The MIT License is, you guessed it, a license. In general
  654. terms, a license is permission that one person or legal entity—the
  655. “licensor”—gives another—the “licensee”—to do something the
  656. law would otherwise let them sue for. The MIT License is a promise
  657. not to sue.</p>
  658. <p>The law sometimes distinguishes licenses from promises to give
  659. licenses. If someone breaks a promise to give a license, you may be
  660. able to sue them for breaking their promise, but you may not end up
  661. with a license. “Hereby” is one of those hokey, archaic-sounding
  662. words lawyers just can’t get rid of. It’s used here to show that
  663. the license text itself gives the license, and not just a promise of
  664. a license. It’s a legal <a href="https://en.wikipedia.org/wiki/Immediately-invoked_function_expression">IIFE</a>.</p>
  665. <p>While many licenses give permission to a specific, named licensee,
  666. The MIT License is a “public license”. Public licenses give
  667. everybody—the public at large—permission. This is one of the
  668. three great ideas in open-source licensing. The MIT License captures
  669. this idea by giving a license “to any person obtaining a copy of
  670. … the Software”. As we’ll see later, there is also a condition
  671. to receiving this license that ensures others will learn about their
  672. permission, too.</p>
  673. <p>The parenthetical with a capitalized term in quotation marks (a
  674. “Definition”), is the standard way to give terms specific meanings
  675. in American-style legal documents. Courts will reliably look back
  676. to the terms of the definition when they see a defined, capitalized
  677. term used elsewhere in the document.</p>
  678. <h3 id="grant-scope">Grant Scope</h3>
  679. <blockquote>
  680. <p>to deal in the Software without restriction,</p>
  681. </blockquote>
  682. <p>From the licensee’s point of view, these are the seven most important
  683. words in The MIT License. The key legal concerns are getting sued
  684. for copyright infringement and getting sued for patent infringement.
  685. Neither copyright law nor patent law uses “to deal in” as a term of
  686. art; it has no specific meaning in court. As a result, any court
  687. deciding a dispute between a licensor and a licensee would ask what
  688. the parties meant and understood by this language. What the court
  689. will see is that the language is intentionally broad and open-ended.
  690. It gives licensees a strong argument against any claim by a licensor
  691. that they didn’t give permission for the licensee to do <em>that</em> specific
  692. thing with the software, even if the thought clearly didn’t occur to
  693. either side when the license was given.</p>
  694. <blockquote>
  695. <p>including without limitation the rights to use, copy, modify, merge,
  696. publish, distribute, sublicense, and/or sell copies of the Software,
  697. and to permit persons to whom the Software is furnished to do so,</p>
  698. </blockquote>
  699. <p>No piece of legal writing is perfect, “fully settled in meaning”, or
  700. unmistakably clear. Beware anyone who pretends otherwise. This is the
  701. least perfect part of The MIT License. There are three main issues:</p>
  702. <p>First, “including without limitation” is a legal antipattern. It
  703. crops up in any number of flavors:</p>
  704. <ul>
  705. <li>“including, without limitation”</li>
  706. <li>“including, without limiting the generality of the foregoing”</li>
  707. <li>“including, but not limited to”</li>
  708. <li>many, many pointless variations</li>
  709. </ul>
  710. <p>All of these share a common purpose, and they all fail to achieve
  711. it reliably. Fundamentally, drafters who use them try to have their
  712. cake and eat it, too. In The MIT License, that means introducing
  713. specific examples of “dealing in the Software”—“use, copy, modify”
  714. and so on—without implying that licensee action has to be something
  715. like the examples given to count as “dealing in”. The trouble is
  716. that, if you end up needing a court to review and interpret the terms
  717. of a license, the court will see its job as finding out what those
  718. fighting meant by the language. If the court needs to decide what
  719. “deal in” means, it cannot “unsee” the examples, even if you tell
  720. it to. I’d argue that “deal in the Software without restriction”
  721. alone would be better for licensees. Also shorter.</p>
  722. <p>Second, the verbs given as examples of “deal in” are a hodgepodge.
  723. Some have specific meanings under copyright or patent law, others
  724. almost do or just plain don’t:</p>
  725. <ul>
  726. <li>
  727. <p><em>use</em> appears in <a href="https://www.govinfo.gov/app/details/USCODE-2017-title35/USCODE-2017-title35-partIII-chap28-sec271">United States Code title 35, section 271(a)</a>, the patent law’s list of what patent owners can sue
  728. others for doing without permission.</p>
  729. </li>
  730. <li>
  731. <p><em>copy</em> appears in <a href="https://www.govinfo.gov/app/details/USCODE-2017-title17/USCODE-2017-title17-chap1-sec106">United States Code title 17, section 106</a>, the copyright law’s list of what copyright owners can
  732. sue others for doing without permission.</p>
  733. </li>
  734. <li>
  735. <p><em>modify</em> doesn’t appear in either copyright or patent statute.
  736. It is probably closest to “prepare derivative works” under the
  737. copyright statute, but may also implicate improving or otherwise
  738. derivative inventions.</p>
  739. </li>
  740. <li>
  741. <p><em>merge</em> doesn’t appear in either copyright or patent statute.
  742. “Merger” has a specific meaning in copyright, but that’s clearly
  743. not what’s intended here. Rather, a court would probably read
  744. “merge” according to its meaning in industry, as in “to merge code”.</p>
  745. </li>
  746. <li>
  747. <p><em>publish</em> doesn’t appear in either copyright or patent statute.
  748. Since “the Software” is what’s being published, it probably hews
  749. closest to “distribute” under the <a href="https://www.govinfo.gov/app/details/USCODE-2017-title17/USCODE-2017-title17-chap1-sec106">copyright statute</a>.
  750. That statute also covers rights to perform and display works
  751. “publicly”, but those rights apply only to specific kinds of
  752. copyrighted work, like plays, sound recordings, and motion pictures.</p>
  753. </li>
  754. <li>
  755. <p><em>distribute</em> appears in the <a href="https://www.govinfo.gov/app/details/USCODE-2017-title17/USCODE-2017-title17-chap1-sec106">copyright statute</a>.</p>
  756. </li>
  757. <li>
  758. <p><em>sublicense</em> is a general term of intellectual property law.
  759. The right to sublicense means the right to give others licenses
  760. of their own, to do some or all of what you have permission to do.
  761. The MIT License’s right to sublicense is actually somewhat unusual
  762. in open-source licenses generally. The norm is what Heather
  763. Meeker calls a “direct licensing” approach, where everyone who
  764. gets a copy of the software and its license terms gets a license
  765. direct from the owner. Anyone who might get a sublicense under
  766. the MIT License will probably end up with a copy of the license
  767. telling them they have a direct license, too.</p>
  768. </li>
  769. <li>
  770. <p><em>sell copies of</em> is a mongrel. It is close to “offer to sell” and
  771. “sell” in the <a href="https://www.govinfo.gov/app/details/USCODE-2017-title35/USCODE-2017-title35-partIII-chap28-sec271">patent statute</a>, but refers to “copies”,
  772. a copyright concept. On the copyright side, it seems close to
  773. “distribute”, but the <a href="https://www.govinfo.gov/app/details/USCODE-2017-title17/USCODE-2017-title17-chap1-sec106">copyright statute</a> makes no
  774. mention of sales.</p>
  775. </li>
  776. <li>
  777. <p><em>permit persons to whom the Software is furnished to do so</em> seems
  778. redundant of “sublicense”. It’s also unnecessary to the extent
  779. folks who get copies also get a direct license.</p>
  780. </li>
  781. </ul>
  782. <p>Lastly, as a result of this mishmash of legal, industry,
  783. general-intellectual-property, and general-use terms, it isn’t clear
  784. whether The MIT License includes a patent license. The general
  785. language “deal in” and some of the example verbs, especially “use”,
  786. point toward a patent license, albeit a very unclear one. The fact
  787. that the license comes from the <em>copyright holder</em>, who may or may not
  788. have patent rights in inventions in the software, as well as most of
  789. the example verbs and the definition of “the Software” itself, all
  790. point strongly toward a copyright license. More recent permissive
  791. open-source licenses, like <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>, address copyright, patent,
  792. and even trademark separately and specifically.</p>
  793. <h3 id="three-license-conditions">Three License Conditions</h3>
  794. <blockquote>
  795. <p>subject to the following conditions:</p>
  796. </blockquote>
  797. <p>There’s always a catch! MIT has three!</p>
  798. <p>If you don’t follow The MIT License’s conditions, you don’t get the
  799. permission the license offers. So failing to do what the conditions
  800. say at least theoretically leaves you open to a lawsuit, probably a
  801. copyright lawsuit.</p>
  802. <p>Using the value of the software to the licensee to motivate
  803. compliance with conditions, even though the licensee paid nothing
  804. for the license, is the second great idea of open-source licensing.
  805. The last, not found in The MIT License, builds off license conditions:
  806. “Copyleft” licenses like the <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GNU General Public License</a>
  807. use license conditions to control how those making changes can license
  808. and distribute their changed versions.</p>
  809. <h3 id="notice-condition">Notice Condition</h3>
  810. <blockquote>
  811. <p>The above copyright notice and this permission notice shall be
  812. included in all copies or substantial portions of the Software.</p>
  813. </blockquote>
  814. <p>If you give someone a copy of the software, you need to include the
  815. license text and any copyright notice. This serves a few critical
  816. purposes:</p>
  817. <ol>
  818. <li>
  819. <p>Gives others notice that they have permission for the software
  820. under the public license. This is a key part of the
  821. direct-licensing model, where each user gets a license direct from
  822. the copyright holder.</p>
  823. </li>
  824. <li>
  825. <p>Makes known who’s behind the software, so they can be showered in
  826. praises, glory, and cold, hard cash donations.</p>
  827. </li>
  828. <li>
  829. <p>Ensures the warranty disclaimer and limitation of liability (coming
  830. up next) follow the software around. Everyone who gets a copy
  831. should get a copy of those licensor protections, too.</p>
  832. </li>
  833. </ol>
  834. <p>There’s nothing to stop you charging for providing a copy, or even
  835. a copy in compiled form, without source code. But when you do,
  836. you can’t pretend that the MIT code is your own proprietary code,
  837. or provided under some other license. Those receiving get to know
  838. their rights under the “public license”.</p>
  839. <p>Frankly, compliance with this condition is breaking down. Nearly every
  840. open-source license has such an “attribution” condition. Makers of
  841. system and installed software often understand they’ll need to compile
  842. a notices file or “license information” screen, with copies of license
  843. texts for libraries and components, for each release of their own.
  844. The project-steward foundations have been instrumental in teaching
  845. those practices. But web developers, as a whole, haven’t got the
  846. memo. It can’t be explained away by a lack of tooling—there is
  847. plenty—or the highly modular nature of packages from npm and other
  848. repositories—which uniformly standardize metadata formats for license
  849. information. All the good JavaScript minifiers have command-line flags
  850. for preserving license header comments. Other tools will concatenate
  851. <code class="highlighter-rouge">LICENSE</code> files from package trees. There’s really no excuse.</p>
  852. <h3 id="warranty-disclaimer">Warranty Disclaimer</h3>
  853. <blockquote>
  854. <p>The Software is provided “as is”, without warranty of any kind,
  855. express or implied, including but not limited to the warranties of
  856. merchantability, fitness for a particular purpose and noninfringement.</p>
  857. </blockquote>
  858. <p>Nearly every state in the United States has enacted a version of
  859. the Uniform Commercial Code, a model statute of laws governing
  860. commercial transactions. Article 2 of the UCC—“Division 2”
  861. in California—governs contracts for sales of goods, from used
  862. automobiles bought off the lot to large shipments of industrial
  863. chemicals to manufacturing plants.</p>
  864. <p>Some of the UCC’s rules about sales contracts are mandatory. These
  865. rules always apply, whether those buying and selling like them or not.
  866. Others are just “defaults”. Unless buyers and sellers opt out in
  867. writing, the UCC implies that they want the baseline rule found in
  868. the UCC’s text for their deal. Among the default rules are implied
  869. “warranties”, or promises by sellers to buyers about the quality and
  870. usability of the goods being sold.</p>
  871. <p>There is a big theoretical debate about whether public licenses
  872. like The MIT License are contracts—enforceable agreements between
  873. licensors and licensees—or just licenses, which go one way, but
  874. may come with strings attached, their conditions. There is less
  875. debate about whether software counts as “goods”, triggering the UCC’s
  876. rules. There is no debate among licensors on liability: They don’t want
  877. to get sued for lots of money if the software they give away for free
  878. breaks, causes problems, doesn’t work, or otherwise causes trouble.
  879. That’s exactly the opposite of what three default rules for “implied
  880. warranties” do:</p>
  881. <ol>
  882. <li>
  883. <p>The implied warranty of “merchantability” under <a href="https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=2314.&amp;lawCode=COM">UCC section
  884. 2-314</a> is a promise that “the goods”—the Software—are
  885. of at least average quality, properly packaged and labeled,
  886. and fit for the ordinary purposes they are intended to serve.
  887. This warranty applies only if the one giving the software is a
  888. “merchant” with respect to the software, meaning they deal in
  889. software and hold themselves out as skilled in software.</p>
  890. </li>
  891. <li>
  892. <p>The implied warranty of “fitness for a particular purpose” under
  893. <a href="https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=2315.&amp;lawCode=COM">UCC section 2-315</a> kicks in when the seller knows the
  894. buyer is relying on them to provide goods for a particular purpose.
  895. The goods need to actually be “fit” for that purpose.</p>
  896. </li>
  897. <li>
  898. <p>The implied warranty of “noninfringement” is not part of the UCC,
  899. but is a common feature of general contract law. This implied
  900. promise protects the buyer if it turns out the goods they received
  901. infringe somebody else’s intellectual property rights. That would
  902. be the case if the software under The MIT License didn’t actually
  903. belong to the one trying to license it, or if it fell under a
  904. patent owned by someone else.</p>
  905. </li>
  906. </ol>
  907. <p><a href="https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=2316.&amp;lawCode=COM">Section 2-316(3)</a> of the UCC requires language opting
  908. out of, or “excluding”, implied warranties of merchantability and
  909. fitness for a particular purpose to be conspicuous. “Conspicuous”
  910. in turn means written or formatted to call attention to itself, the
  911. opposite of microscopic fine print meant to slip past unwary consumers.
  912. State law may impose a similar attention-grabbing requirement for
  913. disclaimers of noninfringement.</p>
  914. <p>Lawyers have long suffered under the delusion that writing anything
  915. in <code class="highlighter-rouge">ALL-CAPS</code> meets the conspicuous requirement. That isn’t true.
  916. Courts have criticized the Bar for pretending as much, and most
  917. everyone agrees all-caps does more to discourage reading than compel
  918. it. All the same, most open-source-license forms set their warranty
  919. disclaimers in all-caps, in part because that’s the only obvious way
  920. to make it stand out in plain-text <code class="highlighter-rouge">LICENSE</code> files. I’d prefer to
  921. use asterisks or other ASCII art, but that ship sailed long, long ago.</p>
  922. <h3 id="limitation-of-liability">Limitation of Liability</h3>
  923. <blockquote>
  924. <p>In no event shall the authors or copyright holders be liable for any
  925. claim, damages or other liability, whether in an action of contract,
  926. tort or otherwise, arising from, out of or in connection with the
  927. Software or the use or other dealings in the Software.</p>
  928. </blockquote>
  929. <p>The MIT License gives permission for software “free of charge”, but
  930. the law does not assume that folks receiving licenses free of charge
  931. give up their rights to sue when things go wrong and the licensor is
  932. to blame. “Limitations of liability”, often paired with “damages
  933. exclusions”, work a lot like licenses, as promises not to sue.
  934. But these are protections for the <em>licensor</em> against lawsuits
  935. by <em>licensees</em>.</p>
  936. <p>In general, courts read limitations of liability and damages exclusions
  937. warily, since they can shift an incredible amount of risk from
  938. one side to another. To protect the community’s vital interest in
  939. giving folks a way to redress wrongs done in court, they “strictly
  940. construe” language limiting liability, reading it against the one
  941. protected by it where possible. Limitations of liability have to be
  942. specific to stand up. Especially in “consumer” contracts and other
  943. situations where those giving up the right to sue lack sophistication
  944. or bargaining power, courts have sometimes refused to honor language
  945. that seemed buried out of sight. Partly for that reason, partly by
  946. sheer force of habit, lawyers tend to give limits of liability the
  947. all-caps treatment, too.</p>
  948. <p>Drilling down a bit, the “limitation of liability” part is a cap on
  949. the amount of money a licensee can sue for. In open-source licenses,
  950. that limit is always no money at all, $0, “not liable”. By contrast,
  951. in commercial licenses, it’s often a multiple of license fees paid
  952. in the last 12-month period, though it’s often negotiated.</p>
  953. <p>The “exclusion” part lists, specifically, kinds of legal
  954. claims—reasons to sue for damages—the licensor cannot use.
  955. Like many, many legal forms, The MIT License mentions actions “of
  956. contract”—for breaching a contract—and “of tort”. Tort rules
  957. are general rules against carelessly or maliciously harming others.
  958. If you run someone down on the road while texting, you have committed
  959. a tort. If your company sells faulty headphones that burn peoples’
  960. ears off, your company has committed a tort. If a contract doesn’t
  961. specifically exclude tort claims, courts sometimes read exclusion
  962. language in a contract to prevent only contract claims. For good
  963. measure, The MIT License throws in “or otherwise”, just to catch the
  964. odd admiralty law or other, exotic kind of legal claim.</p>
  965. <p>The phrase “arising from, out of or in connection with” is a recurring
  966. tick symptomatic of the legal draftsman’s inherent, anxious insecurity.
  967. The point is that any lawsuit having anything to do with the software
  968. is covered by the limitation and exclusions. On the off chance
  969. something can “arise from”, but not “out of”, or “in connection
  970. with”, it feels better to have all three in the form, so pack ‘em in.
  971. Never mind that any court forced to split hairs in this part of the
  972. form will have to come up with different meanings for each, on the
  973. assumption that a professional drafter wouldn’t use different words
  974. in a row to mean the same thing. Never mind that in practice, where
  975. courts don’t feel good about a limitation that’s disfavored to begin
  976. with, they’ll be more than ready to read the scope trigger narrowly.
  977. But I digress. The same language appears in literally millions
  978. of contracts.</p>
  979. <h2 id="overall">Overall</h2>
  980. <p>All these quibbles are a bit like spitting out gum on the way
  981. into church. The MIT License is a legal classic. The MIT License
  982. works. It is by no means a panacea for all software IP ills, in
  983. particular the software patent scourge, which it predates by decades.
  984. But MIT-style licenses have served admirably, fulfilling a narrow
  985. purpose—reversing troublesome default rules of copyright, sales,
  986. and contract law—with a minimal combination of discreet legal tools.
  987. In the greater context of computing, its longevity is astounding.
  988. The MIT License has outlasted and will outlast the vast majority of
  989. software licensed under it. We can only guess how many decades of
  990. faithful legal service it will have given when it finally loses favor.
  991. It’s been especially generous to those who couldn’t have afforded
  992. their own lawyer.</p>
  993. <p>We’ve seen how the The MIT License we know today is a specific,
  994. standardized set of terms, bringing order at long last to a chaos
  995. of institution-specific, haphazard variations.</p>
  996. <p>We’ve seen how its approach to attribution and copyright notice
  997. informed intellectual property management practices for academic,
  998. standards, commercial, and foundation institutions.</p>
  999. <p>We’ve seen how The MIT Licenses grants permission for software to all,
  1000. for free, subject to conditions that protect licensors from warranties
  1001. and liability.</p>
  1002. <p>We’ve seen that despite some crusty verbiage and lawyerly affectation,
  1003. one hundred and seventy one little words can get a hell of a lot of
  1004. legal work done, clearing a path for open-source software through a
  1005. dense underbrush of intellectual property and contract.</p>
  1006. <hr />
  1007. <p>I’m so grateful for all who’ve taken the time to read this rather long
  1008. post, to let me know they found it useful, and to help improve it.
  1009. As always, I welcome your comments via <a href="mailto:kyle@kemitchell.com">e-mail</a>, <a href="https://twitter.com/kemitchell">Twitter</a>, and
  1010. <a href="https://github.com/kemitchell/writing.kemitchell.com/tree/master/_posts/2016-09-21-MIT-License-Line-by-Line.md">GitHub</a>.</p>
  1011. <p><a name="further-reading"></a>A number of folks have asked where
  1012. they can read more, or find run-downs of other licenses, like the
  1013. GNU General Public License or the Apache 2.0 license. No matter what
  1014. your particular continuing interest may be, I heartily recommend the
  1015. following books:</p>
  1016. <ul>
  1017. <li>
  1018. <p>Andrew M. St. Laurent’s <em><a href="https://lccn.loc.gov/2006281092">Understanding Open Source &amp; Free Software
  1019. Licensing</a></em>, from O’Reilly.</p>
  1020. <p>I start with this one because, while it’s somewhat dated, its
  1021. approach is also closest to the line-by-line approach used above.
  1022. O’Reilly has made it <a href="http://www.oreilly.com/openbook/osfreesoft/book/">available online</a>.</p>
  1023. </li>
  1024. <li>
  1025. <p>Heather Meeker’s <em><a href="https://www.amazon.com/dp/1511617772">Open (Source) for Business</a></em></p>
  1026. <p>In my opinion, by far the best writing on the GNU General Public License
  1027. and copyleft more generally. This book covers the history, the
  1028. licenses, their development, as well as compatibility and compliance.
  1029. It’s the book I lend to clients considering or dealing with the GPL.</p>
  1030. </li>
  1031. <li>
  1032. <p>Larry Rosen’s <em><a href="https://lccn.loc.gov/2004050558">Open Source Licensing</a></em>, from Prentice Hall.</p>
  1033. <p>A great first book, also available for free <a href="http://www.rosenlaw.com/oslbook.htm">online</a>. This is
  1034. the best introduction to open-source licensing and related law for
  1035. programmers starting from scratch. This one is also a bit dated
  1036. in some specific details, but Larry’s taxonomy of licenses and succinct
  1037. summary of open-source business models stand the test of time.</p>
  1038. </li>
  1039. </ul>
  1040. <p>All of these were crucial to my own education as an open-source
  1041. licensing lawyer. Their authors are professional heroes of mine.
  1042. Have a read! — K.E.M</p>
  1043. <hr />
  1044. <p>I license this article under a
  1045. <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-ShareAlike 4.0 license</a>.</p>
  1046. <p><a href="http://www.opensourceinitiative.net/edu/MIT-License/">Russian</a>, <a href="http://postd.cc/mit-license-line-by-line/">Japanese</a>, and <a href="https://edu-helper.org/p28/">Ukrainian</a> translations are available.</p>
  1047. </article>
  1048. </section>
  1049. <nav id="jumpto">
  1050. <p>
  1051. <a href="/david/blog/">Accueil du blog</a> |
  1052. <a href="https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html">Source originale</a> |
  1053. <a href="/david/stream/2019/">Accueil du flux</a>
  1054. </p>
  1055. </nav>
  1056. <footer>
  1057. <div>
  1058. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  1059. <p>
  1060. Bonjour/Hi!
  1061. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  1062. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  1063. </p>
  1064. <p>
  1065. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  1066. </p>
  1067. <p>
  1068. Voici quelques articles choisis :
  1069. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  1070. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  1071. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  1072. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  1073. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  1074. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  1075. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  1076. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  1077. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  1078. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  1079. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  1080. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  1081. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  1082. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  1083. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  1084. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  1085. </p>
  1086. <p>
  1087. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  1088. </p>
  1089. <p>
  1090. Je ne traque pas ta navigation mais mon
  1091. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  1092. conserve des logs d’accès.
  1093. </p>
  1094. </div>
  1095. </footer>
  1096. <script type="text/javascript">
  1097. ;(_ => {
  1098. const jumper = document.getElementById('jumper')
  1099. jumper.addEventListener('click', e => {
  1100. e.preventDefault()
  1101. const anchor = e.target.getAttribute('href')
  1102. const targetEl = document.getElementById(anchor.substring(1))
  1103. targetEl.scrollIntoView({behavior: 'smooth'})
  1104. })
  1105. })()
  1106. </script>