171 слово, которое должен понимать любой программист


Лицензия MIT – самая популярная лицензия для программ с открытым кодом. Здесь приводится одно из её прочтений, с построчным разбором.

Читаем лицензию


Если вы разрабатываете программы с открытым кодом, и не читали эту лицензию подробно – а она состоит всего из 171 слова – вам нужно этим заняться. Особенно, если вы не занимаетесь лицензиями на ежедневной основе. Отметьте всё, что вам непонятно. А я повторю все эти слова, по порядку и по кусочкам, вместе с контекстом и комментариями. При этом важно представлять себе её целиком.

The MIT License (MIT)

Copyright © «year» «copyright holders»

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Лицензия MIT

Copyright © «год» «владельцы прав»

Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:

Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Лицензия разбита на пять параграфов, но логически делится следующим образом:

  • Заголовок

    • Название
    • Копирайт

  • Разрешение

    • Область действия
    • Условия

      • Передача лицензии
      • Отказ от гарантий
      • Ограничение ответственности

Поехали.

Заголовок


Название


Лицензия MIT

«Лицензия MIT» – это не одна лицензия, а семейство лицензионных форм, сформировавшихся под влиянием стиля, принятого в продуктах, выпускаемых из Массачусетского технологического института. С годами она часто менялась, как у тех проектов, что использовали её изначально, так и в качестве модели для других проектов. Проект Fedora Project поддерживает архив интересных вариантов лицензии, с вариантами лицензий, хранящимися простым текстом, будто бы анатомическими диковинами в формальдегиде, демонстрирующими ход эволюции.

К счастью, инициатива открытых проектов Open Source Initiative и группа Software Package Data eXchange стандартизировали общий вид MIT-лицензии и назвали его “The MIT License”. OSI приняла строковые идентификаторы для общеупотребительных лицензий открытого кода у SPDX, и сокращение MIT недвусмысленно подразумевает «лицензию MIT». Если вам необходимо распространять ваш продукт на MIT-условиях, воспользуйтесь стандартной формой лицензии MIT.

Но даже если вы включите в файл LICENSE строки “The MIT License” или “SPDX:MIT”, ответственный читатель сверит ваш текст со стандартной формой, просто для подстраховки. Много разных форм лицензий называет себя «MIT License», отличаясь при этом в деталях, и благодаря слишком сильной размытости понятия «лицензия MIT» многие авторы не устояли перед искушением добавить в текст что-нибудь от себя. Каноническим примером такого плохого, ужасного, отвратительного изменения служит лицензия JSON, в которой к MIT-лицензии добавляется «Программа должна использоваться с хорошими, а не с плохими, целями». Такая выходка весьма в духе Крокфорда. Ужасная головная боль. Может, это насмешка над юристами. Они смеялись всю дорогу до банка.

Мораль такая: просто написать «лицензия MIT» будет двусмысленно. Народ в принципе поймёт, что вы имели в виду, но вы просто сохраните время всем, и себе, скопировав текст стандартной лицензии MIT в ваш проект.

Копирайт


Copyright © <год> <владельцы прав>

До вступления в силу Закона об авторских правах 1976 года в США требовались особые действия, «формальные требования», для обеспечения сохранения авторского права. И если вы им не следовали, ваше право подавать в суд на незаконное использование ваших работ было ограничено, а иногда и вовсе исчезало. Одним из формальных требований было т.н. «уведомление»: размещение отметок на ваших работах, и другие действия, необходимые для оповещения рынка о заявлении на права. Значок — стандартный символ для этого. В ASCII не было такого значка, поэтому для той же цели использовалась комбинация ©.

Закон об авторских правах 1976 года устранил необходимость соблюдения формальностей. В США владельцам прав до сих пор необходимо регистрировать свои работы перед судебными разбирательствами, но на практике это делается уже непосредственно перед самим судом. Вы не потеряете копирайт, если просто забыли о нём заявить, зарегистрировать, отправить копию в Библиотеку конгресса, и т.п.

Но даже если эти заявления уже не обязательны, они всё ещё довольно полезны. Обозначив год, в котором была сделана некая работа и права на неё, можно сразу же дать понять, когда эти права истекут и работа станет всеобщим достоянием. Личности авторов тоже полезны – в США законы по-разному относятся к отдельным авторам и группам авторов. В бизнесе компания дважды подумает, прежде чем будет использовать софт от своего соперника, даже если лицензия это позволяет. Если вы надеетесь, что другие заметят вашу работу и захотят получить от вас лицензию, информация о правообладателе тоже будет полезной.

Для владельца копирайта место есть не во всех лицензиях. Более современные лицензии, например, Apache 2.0 и GPL 3.0, публикуют тексты LICENSE, которые нужно дословно скопировать, а затем в комментариях и отдельных файлах уже указать владельцев работы. Такой подход исключает изменение текстов лицензий и упрощает их автоматическую обработку.

Лицензия MIT происходит из релизов кода, выполняемых различными учреждениями. Для таких релизов владельцем прав был только институт, выпускающий код. Другие институты переняли эти лицензии, заменяя MIT своими названиями, что и привело к существованию лицензий общего вида. Такому процессу подвергались и другие лицензии, например, BSD License из Калифорнийского университета, изначально состоявшая из четырёх пунктов, а теперь используемая в вариантах с тремя и двумя пунктами, а также The ISC License for the Internet Systems Consortium, вариант MIT-лицензии.

В каждом случае организация указывала себя в качестве владельца прав, и пользовалась возможностями «работы, выполненной по найму», которые позволяли оставлять себе права на работу, выполненную сотрудниками и контрактниками. Эти правила обычно не распространяются на работу, которую сотрудники и контрактники выполняют по своей инициативе. Также они не распространяются на распределённые группы работающих вместе людей, добровольно предоставившие свой код. Для фондов, управляющих проектами, вроде Apache Foundation и Eclipse Foundation, принимающих код из различных источников, это представляет проблему. Обычно фонды справлялись с этим, используя домашнюю лицензию, заявлявшую об одном владельце прав – Apache CLA и Eclipse CLA – для получения прав от спонсоров. Собирание прав в одном месте даже более важно для всяческих лицензий типа «copyleft», например, GPL, которые перекладывают ответственность по распространению ценностей свободного софта на владельцев копирайта.

Сегодня многие проекты, даже не управляющие работой нескольких поставщиков кода, используют MIT-лицензии. Этому поспособствовали SPDX и OSI, стандартизировав формы лицензий, не ссылающиеся на определённое лицо или группу лиц, обладающих правами. В результате большинство авторов просто вписывают своё имя в уведомление о правообладателе, и иногда ещё вставляют год.

Изначальный владелец кода сохраняет права на свою работу. Но хотя MIT-подобные лицензии дают другим права на надстройку и изменение софта, создавая то, что называется «производной работой», они не дают изначальному автору возможности владеть тем, что создали другие люди. Каждый, внёсший свой вклад, сохраняет права на свою часть работы, проведённую на основе существовавшего кода.

Большинство проектов не удосуживается собрать с участников согласия с лицензией, не говоря уже о подписании документов о распределении прав. Это наивно, но понятно. Несмотря на предположение разработчиков о том, что, отправляя пул-реквесты на GitHub, они автоматически получают некие права по распространению проекта согласно букве лицензии, в США таких правил нет. По умолчанию осуществляется защита авторских прав, а не разрешения по передаче лицензий.

Чтобы заполнить разрыв между легализованными и документированными передачами прав и отсутствием каких бы то ни было бумаг, некоторые проекты принимают Developer's Certificate of Origin, сертификат о происхождении от разработчика, стандартное заявление, на которое ссылаются разработчики при помощи метатегов Signed-Off-By. DCO был разработан для разработки ядра Linux, вышедшего из ядра Unix, принадлежавшего SCO. DCO хорошо справляется с документацией процесса, в котором каждая из линеек Linux появилась благодаря вносящим в неё вклад людям. И хотя это не лицензия, она предоставляет множество неплохих доказательств, что те, кто отправлял в проект свой код, подразумевали, что он будет распространяться вместе с проектом, и что пользователи будут пользоваться им согласно существующей для kernel лицензии. Также с ядром поддерживают человеко-читаемый файл CREDITS, в котором перечислены все люди, сделавшие свой вклад, с именами, членством, областью вклада и другими данными.

Разрешение


Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»),

Суть лицензии от MIT в том, что это, как вы могли догадаться, лицензия. В общем случае, лицензия – это разрешение, которое один человек или юридическое лицо – лицензиар – разрешает другому – лицензиату – делать что-либо, что в противном случае можно было бы оспаривать в суде. Лицензия MIT – это обещание не подавать в суд.

Иногда закон разделяет лицензию и обещание в передаче лицензии. Если кто-то нарушает обещание передать вам лицензию, вы можете засудить его за нарушение обещания, но при этом вы можете так и не получить лицензию. В данном предложении [в английской версии для этого служит архаизм «hereby» – прим. перев.] поясняется, что сам по себе текст этой лицензии уже даёт вам лицензию, а не просто обещание её передачи.

И хотя множество лицензий дают разрешение на определённую поименованную лицензию, лицензия от MIT – это «общественная лицензия». Общественные лицензии дают разрешение всем, т.е. – обществу. Это одна из трёх великих идей, стоящих за лицензиями для открытого кода. Лицензия MIT использует эту идею, предлагая лицензию всем «лицам, получившим копию данного программного обеспечения».

Обозначение понятия в скобках и кавычках («Определение») – стандартный способ придания терминам определённого значения в легальных документах. Этим терминами стороны смогут пользоваться в судебном разбирательстве.

Область действия


безвозмездно использовать Программное Обеспечение без ограничений,

Эти слова, с точки зрения лицензиата, самые важные из всех слов лицензии MIT. Основные проблемы, связанные с правами – это возможность оказаться преследуемым за нарушение авторских прав и за нарушение патентов. Ни одна из этих областей права не использует слова «безвозмездно использовать». В результате суд обязательно спросит, что имеется в виду под этим определением. Суд увидит, что это описание намеренно слишком широкое и незакрытое. Оно даёт возможность лицензиату сопротивляться любым претензиям лицензиара на счёт того, что разрешение на какое-то определённое использование софта он не давал.

включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, а также лицам, которым предоставляется данное Программное Обеспечение,

Не бывает идеальных юридических текстов, полностью недвусмысленных или совершенно понятных. Не верьте, если кто-то говорит вам обратное. Эта часть лицензии наименее совершенна.

Во-первых, «включая неограниченное право» – это пример того, как не нужно писать юридические тексты. Бывают вариации этой формулировки:

  • включая, без ограничений;
  • включая, без ограничений обобщения вышеупомянутого;
  • включая, но не ограничиваясь;

И другие.

Все они пишутся для одной цели, и ни одна из них её не достигает. Использующие их юристы хотят и рыбку съесть, и на мель не сесть. В лицензии MIT они означают попытку представить определённые примеры «использования ПО» – «использование, копирование, изменение,», и проч.,- не имея в виду, что использовать это ПО можно будет только одним из перечисленных способов. Проблема в том, что если представить такую лицензию в суде, то суду для понимания лицензии придётся определять значения указанных терминов. Если суд захочет понять, что означает «использовать ПО», он не сможет «развидеть» указанные в лицензии примеры использования. Я бы сказал, что лучше всего написать в лицензии «использовать ПО без ограничений». Это ещё и короче.

Во-вторых, перечисленные термины представляют собой мешанину. Некоторые из них описаны в законах об авторских правах и патентах, а некоторые – нет.

  • использовать встречается в Кодексе Соединённых Штатов Америки, ст.35 п.271(а) в перечне того, из-за применения чего без разрешения патентодержателя последний может подать в суд
  • копировать встречается в Кодексе ст.17 п.106, в списке закона об авторском праве
  • изменять, публиковать, объединять не встречается ни в авторском, ни в патентном праве.
  • распространять встречается в законе об авторском праве.
  • сублицензировать – это общий термин закона об интеллектуальной собственности. Оно означает право другим раздавать свои собственные лицензии на частичный или полный список того, что вы им разрешаете делать. Этот пункт необычен для открытых лицензий. Нормальный подход – прямой, когда каждый, получающий копию софта, получает и лицензию напрямую от владельца.
  • продавать – слово гибридное. Оно похоже на продажи, упомянутые в патентном праве, но имеет в виду продажу копий, как в законе об авторских правах. С точки зрения копирайта оно ближе к «распространению», но в законе о копирайте не упоминаются продажи.
  • а также лицам, которым предоставляется данное Программное Обеспечение – эта фраза выглядит ненужным повторением «сублицензирования». Также она не нужна постольку, поскольку получающие копии софта люди сразу получают и лицензию.

И, наконец, из-за этой смеси юридической, производственной, интеллектуальной собственности и общеупотребительных терминов, непонятно, включает ли лицензия MIT разрешение на патент. «Использование» намекает на патенты, хотя и не очень понятно. То, что лицензия исходит от владельца авторских прав, у которого могут быть, а могут и не быть патентные права на софт, а также большинство указанных для примеров использования глаголов и само определение ПО, указывают на лицензию на копирайт. Более новые лицензии, вроде Apache 2.0, отдельно и явно упоминают копирайт, патенты, и даже торговые марки.

Три условия лицензии


при соблюдении следующих условий

Всегда есть подвох – а у MIT их даже три!

Если вы не выполните условия, вы не получите разрешения. Поэтому теоретически в таком случае вас могут засудить, скорее всего, по закону об авторских правах.

Использовать ценность софта как мотивацию лицензиата на выполнение условий, хотя он за лицензию и не платил, это вторая великая идея софта с открытым кодом. Последняя, которой в лицензии MIT не нашлось места, основана на условиях лицензии – такие лицензии, как GNU Public License, используют условия для контроля над тем, как вносящие изменения люди могут лицензировать и распространять изменённые версии.

Передача лицензии


Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.

Если вы дали кому-либо копию ПО, вы обязаны включить в неё текст лицензии, и можете добавить любые отметки об авторских правах. Это преследует несколько целей:

  1. Сообщает остальным, что у них есть разрешения для ПО по публичной лицензии. Это ключевая особенность моделей с выдачей лицензий напрямую, когда каждый пользователь получает лицензию напрямую от обладателя прав.

  2. Даёт понятие об авторе ПО, чтобы было понятно, кого нужно поливать комплиментами, славой и пожертвованиями.

  3. Обеспечивает отказ от гарантий и ограничение ответственности.

Никто не запрещает вам брать деньги за распространение копий, или даже делать копии в скомпилированном виде, без исходного кода. Но в этом случае нельзя притворяться, что код принадлежит вам, или проходит под какой-то другой лицензией. Получатели продукта должны знать свои права по «публичной лицензии».

Эти условия, к сожалению, выполняются плохо. Почти в каждой лицензии открытого ПО есть такие условия. Создатели системного и устанавливаемого ПО часто понимают, что им необходимо выводить файл с лицензионной информацией на экран, включать копии лицензии в библиотеки и компоненты. Фонды, управляющие проектами, обучают этим практикам. Но веб-разработчики, видимо, не получали уведомления. Нет им прощения.

Отказ от гарантий


ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ.

Почти во всех штатах США закон обязывает следовать версии Единообразного торгового кодекса [Uniform Commercial Code], набору законов, управляющему коммерческие транзакции. 2-я статья UCC посвящена контрактам на продажу товаров, от использованных автомобилей, купленных на аукционе до поставок индустриальных химикатов на производства.

Некоторые правила UCC обязательны для исполнения и применяются всегда. Другие лишь описывают состояние «по умолчанию» – если продавцы и покупатели не напишут в соглашении чего-либо иного. Среди таких правил по «умолчанию» находятся и гарантии, то есть обещания продавцов покупателям по поводу качества и годности для использования продуктов.

Идут споры о том, являются ли публичные лицензии вроде MIT контрактами – соглашениями, к которым можно принудить лицензиатов и лицензиаров – или же это просто лицензии, к которым могут быть прикреплены условия. Чуть меньше споров идёт по поводу того, является ли ПО товаром, и входит ли, таким образом, в юрисдикцию UCC. Но насчёт ответственности у лицензиаров спора нет: никто не хочет, чтобы его засудили, если раздаваемый им софт ломается, причиняет проблемы, не работает, или ещё как-то отрицательно проявляет себя. Это прямо противоположно тому, что описывают три правила гарантий по умолчанию:

  1. Товарная пригодность, согласно секции 2-314, это обещание, что товар – ПО – будет качеством не ниже среднего, соответствующим образом упакован и промаркирован, и пригоден для обычного использования. Это правило применяется только к торговцам ПО – то есть, к продающим их и к считающим себя специалистом в этой области.

  2. Пригодность к определённой цели, согласно секции 2-315, применяется, когда продавец знает, что покупатель рассчитывает на то, что товар будет пригоден для применения определённым образом.

  3. Отсутствие патентных препятствий – не входит в UCC, но обычно используется в контрактных законах. Оно защищает покупателя в случае, когда выясняется, что купленный товар нарушает чьи-либо интеллектуальные права.

Секция 2-316(3) требует, чтобы текст лицензии, исключающий эти гарантии, делал это заметным образом – то есть, привлекая внимание к себе, а не прячась в виде мелкого шрифта на последней странице контракта. То же законами штата может требоваться и от объявлений об отсутствиях патентных препятствий.

Юристы давно заблуждаются, что написав текст ЗАГЛАВНЫМИ БУКВАМИ, они выполняют требование заметности. Это не так. Заглавные буквы часто отталкивают читателя вместо того, чтобы привлекать его внимание. Но большинство лицензий открытого кода пишут эту часть заглавными, поскольку это самый очевидный способ сделать текст в простых текстовых файлах выделяющимся. Я бы предпочёл использовать звёздочки или другой ASCII-art, но этот поезд уже ушёл.

Ограничение ответственности


НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Лицензия MIT раздаёт софт бесплатно, но закон не подразумевает, что получающие бесплатную лицензию люди теряют свои права на суд, если что-то пойдёт не так, и лицензиар окажется виновным. Ограничения ответственности, как и лицензии, тоже служат обещаниями не обращаться в суд – только в этом случае они защищают лицензиаров от лицензиатов.

Обычно суды тщательно читают отказы от гарантий, поскольку это может помочь переложить риск с одной стороны на другую. Чтобы дать народу возможность защитить себя, в любых возможных случаях суды интерпретируют эти отказы против того, кого они защищают. Часто суды отказываются принимать их во внимание, если такие условия находятся где-то в глубине контракта и не выделяются. Поэтому юристы привыкли писать и их заглавными буквами.

Ограничение ответственности, в числе прочего, ограничивает и сумму денег, на которую можно засудить лицензиата. У открытых лицензий это ограничение всегда нулевое. В коммерческих лицензиях часто встречаются суммы, кратные лицензионным отчислениям, оплаченным за последние 12 месяцев.

В этой секции перечисляются те типы законных преследований, которые лицензиар не может использовать. Как и многие легальные формы, эта лицензия упоминает нарушения контрактов и деликты. Правила деликтов относятся к совершению поступков, влекущих за собой возмещение ущерба. Если вы задавили кого-то на дороге, отправляя SMS, вы совершили деликт. Если ваша компания продала бракованные наушники, которые сожгли людям уши, она совершила деликт. Если в контракте не указано явно исключение требований по деликтам, суды иногда этим пользуются. В лицензии MIT указано «по иным требованиям», чтобы исключить всякие экзотические требования.

Фраза "ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ" – нервный тик, характерный для приобретённого страха за свою безопасность у юриста. Смысл в том, что любой иск, связанный с этим ПО, покрывается ограничениями и исключениями. Однако использование ПО вполне входит в «иные действия» с ПО. [в оригинале лицензии указано три варианта событий «arising from», «in connection with», «use» – то есть, «возникающих из», «в связи с» и «при использовании», которые, по сути, дублируют друг друга, что и вызывает претензии у автора статьи – прим. перев.] Однако такой язык используется в миллионах других лицензий.

Заключение


Но все эти претензии не слишком велики. Лицензия MIT – это классика юриспруденции. Она работает. Она не является панацеей от всех болезней софта, в частности, споров по патентам. Но такие лицензии хорошо послужили, и служат конкретной цели – отмене неудобных правил, принятых по-умолчанию в копирайте, продажах и контрактах – с минимальным набором юридических инструментов. В контексте компьютерной тематики её живучесть потрясает. Она пережила и ещё переживёт большинство софта, который был лицензирован по ней. Можно лишь догадываться, сколько десятилетий она ещё будет работать. Это особенно приятно для тех, кто не может позволить себе нанимать адвокатов.

Мы увидели, что лицензия MIT – набор определённых и стандартизированных определений, вносящий порядок в хаос в случайные варианты лицензий, принятые в разных организациях.

Мы увидели, как её подход к определению авторства и вопросам авторских прав влияет на практику управления имущественными правами в академических и коммерческих организациях.

Мы увидели, как она даёт права на ПО всем, бесплатно, на условиях, защищающих лицензиаров от исполнения гарантий и ответственности.

Мы увидели, что, несмотря на немного корявое многословие и юридическую манерность, это 171 слово выполняют огромную юридическую работу и расчищают путь ПО с открытым кодам через густые кустарники интеллектуальной собственности и контрактов.
Поделиться с друзьями
-->

Комментарии (34)


  1. Scratch
    25.09.2016 20:35
    +21

    Если столько букв нужно, чтобы объяснить 171 слово, то сколько же нужно, чтобы объяснить лицензионное соглашение Apple, например или GPL


    1. navion
      26.09.2016 14:43

      Если выкинуть юридическое крючкотворство, то суть любой лицензии можно объяснить в паре предложений.


  1. Vjatcheslav3345
    25.09.2016 20:40
    +18

    А не сделать ли серию о разборе лицензий?


    1. amaslenn
      25.09.2016 21:08
      +3

      Так ведь уже было. Вот тут, например: https://habrahabr.ru/post/243091/.


  1. blackstrip
    25.09.2016 23:24
    -12

    Объясните, зачем нужны эти лицензии? Мне кажется, что эти непонятные куски текста не остановят никого ни от каких действий. Если б лицензию государственную специальную получить, пробежав по инстанциям и выбив бумагу с водяными знаками, подписями и печатями — то это еще понятно, ею можно трясти в судах той страны, где ты ее получил. А что там рядом с прогой лежал файл license.txt с каким-то английским текстом — это кого-то вообще волнует и имеет хоть какой-то юридический вес? Тем более на прогу, которая распространяется как есть и используется кем ни попадя и как ни попадя.


    1. Antelle
      26.09.2016 00:17
      +1

      А вы попробуйте в любой из аппсторов выложить что-нибудь чужое, например, под gpl или ms-rsl.


      1. blackstrip
        26.09.2016 05:58

        да вырезать все упоминания о лицензии, перетасовать строки немножко, переменные переназвать, строчки поломать и т.д., и обозвать «мой болгенос»)) и что тогда будет? все носятся с этим текстом лицензии зачем-то, а мне непонятен смысл этого. Не хочешь чтоб брали код — не давай его никому. Отдал (плевать под какой «лицензией») — он может всплыть в виде фрагментов в десяти местах в настолько перетасованном виде, что и не скажешь что он твой, просто он делает тоже самое что и твой =)


        1. nikolay_karelin
          26.09.2016 08:19

          В таком случае доказать будет сложнее…


        1. Antelle
          26.09.2016 10:13
          +3

          и что тогда будет?

          Абуза, суд, удаление, ничего — хз, что copyright holder захочет, то и будет. Зависит от масштаба.


          Не хочешь чтоб брали код — не давай его никому.

          Доверия нет к продукту. Хочется contribution-ов. Ещё какие-то причины. Но при этом не хочется, чтобы кто-то твои старания взял и продал как своё.


          может всплыть в виде фрагментов в десяти местах

          Так вы что, алгоритм сортировки лицензировать хотите? Тогда вам патент нужен, а не лицензия.


        1. marenkov
          26.09.2016 12:01
          +3

          По той же логике: взять любой понравившийся автомобиль во дворе, перекрасить, повесить в салон свои побрякушки, перебить номера в соответствии с купленным в инете техпаспортом от разбитого в ноль авто… и назвать «моя ласточка».


          1. blackstrip
            26.09.2016 19:33
            -3

            не так) взять автомобиль во дворе, запихать его в волшебный дубликатор и сделать полную его копию себе. Когда у вас воруют код — у вас его не отнимают, а копируют. Это разные вещи.


            1. marenkov
              26.09.2016 21:52
              +4

              Я знаю о чем пишу, у меня воровали код. Сделали точную копию моего продукта, даже название менять не стали. Сменили только данные об авторстве и счет для зачисления пожертвований на поддержку. Как вы думаете, я при этом что-то потерял или нет?

              Вообще, вы не понимаете для чего создают открытое ПО. Вовсе не потому, что так хочется работать, что аж бесплатно. Обычно у его авторов работы и так хватает. Бывает, конечно, что его пишут, чтобы попробовать что-то новое. Но классические цели:

              — показать свои возможности (поднять свою стоимость)
              — реклама себя, фирмы, продукта (например когда есть платная версия)
              — получение прибыли с пожертвований или поддержки
              — сделать мир чуточку лучше (увековечить свое имя)

              Во все этих случаях авторы не будут рады если кто-то скопирует их код и выдаст за свой.

              Правильное поведение с открытым ПО:

              — используете продукт как есть;
              — внести правки в код и *добавить* в информацию об авторстве сведения о своих изменениях (именно добавить, а не заменить);
              — если правки на столько существенны, что на выходе совершенно новый продукт, написать, что он создан на основе исходного (указав данные о его авторстве).


              1. blackstrip
                27.09.2016 19:48
                -5

                Т.е. лицензия не защищает код от копирования, а просто прославляет автора кода среди таких же как он любителей открытого кода. И автор будет рад когда у других людей в программных модулях и в окошке «О программе» будет написано «Был использован модуль Васи Пупкина. Большое ему за это спасибо». Тогда понятно.


                1. saboteur_kiev
                  28.09.2016 00:39
                  +1

                  Если вы написали красивый, качественный, а главное, настолько полезный код, что его активно используют другие, это не только «прославляет» среди любителей, это вообще показывает, что автор способен писать хорошие вещи.

                  И ему не нужно будет доказывать, что «тот модуль у меня сперли», все будут знать, что это сделал он, а значит он умеет делать такие вещи.

                  Это зачтется и при трудоустройстве и при внесении серьезного вклада в различные отрасли жизни и разработки. Но вы видимо поддерживаете путь Попова?


                  1. blackstrip
                    28.09.2016 06:29
                    -2

                    Да не. Я понимаю прославление. Но мне понятней прославление через конечный продукт. А прославление через куски кода — это необычно (имхо). Т.к. прославиться получится только у кодеров и ленивых компаний, которые со словами «ха, лошара, сделал все забесплатно и выложил» с удовольствием стырят все это и выдадут за свое.


                    1. saboteur_kiev
                      28.09.2016 18:24
                      +1

                      Библиотека — это конечный продукт, или кусок кода?

                      Если она сама по себе не запускается и не выполняется, но отлично выполняет свою задачу, имеет документацию и API.


        1. gricom
          26.09.2016 15:48
          +4

          Если вы хотите, чтоб ваше открытое ПО получило больше пользователей, то вы выберете такой тип лицензии, который никого не отпугнет, потому что например нормальные компании не будут вырезать лицензионные файлы и тасовать строчки в исходниках. Они хотят гарантированного отсутствия проблем, и в этом плане лицензия на open source — это как бы манифест автора о том, при каких условиях использования он не будет иметь никаких претензий к юзерам.


    1. alex_blank
      26.09.2016 00:41

      Обратный карго-культ.


    1. avost
      26.09.2016 07:32

      См многомиллионные иски вроде оракел против гугла за кусок кода, который 9 из 10 программистов напишут именно так и даже переменные так же обзовут.
      Что касается «перетуссовать, переобозвать», да, пока вы денис попов, вы можете сделать это с прграммой «сортировка пузырьком» и даже добавить нескучные обои. Но хотел бы я посмотреть, как вы проделаете это, слкажем, с ядром линукса.
      Ну, и главный вопрос — зачем? Купить (или выполнить другие требования лицензии) обычно проще, чем туссовать и менять. А там, где не проще купить, проще написать с нуля. Туссовщик и переобзыватель ставит себя, помимо возможного попадания на деньги, в позицию полного кретина. Посмотрите на лурке статью о денисе попове. У меня она, кстати, первая в выдаче гугла. Кто, после этого, захочет иметь с вами таким дело? То, что нормально (и даже почётно) среди школоты, имеет совершенно другое отношение в реальном мире. А в реальном мире юридические отделы компаний бегут gpl'я как огня.


    1. nikolay_karelin
      26.09.2016 08:19
      +2

      Технически, если какой-то софт даже и выложен в открытый доступ, но БЕЗ лицензии, то его нельзя использовать, совсем. А MIT очень удобная лицензия — ее видишь, и сразу понимаешь, что можно использовать без лишних вопросов.


    1. saboteur_kiev
      26.09.2016 14:41

      Как только продадите софт на значимую сумму, найдется тот, кому будет интересно — сами вы это написали и продаете, или чужое.
      И чем больше сумма, тем больше желающих проверить. При достижении заметной суммы, если вы использовали чужие наработки без соответствующей лицензии, Вас найдут.


  1. samodum
    26.09.2016 00:25

    Antelle, А вот с этого момента по-подробнее


  1. drakmail
    26.09.2016 01:01
    -1

    DCO был разработан для разработки ядра Linux, вышедшего из ядра Unix, принадлежавшего SCO.


    Звучит не реалистично, может тут всё-таки про`BSD? Как я помню, Торвальдс Linux с нуля разрабатывал.


  1. bmourat
    26.09.2016 01:31

    А что такого плохого, ужасного и отвратительного в изменении лицензии JSON?


    1. Old_Chroft
      26.09.2016 11:51
      +4

      >> Программа должна использоваться с хорошими, а не с плохими, целями <<
      >> Кроха-сын к отцу пришел, и спросила кроха: что такое хорошо, и что такое плохо <<
      Нет абсолютно никаких критериев «хорошо» и «плохо», есть «моя точка зрения».


  1. ankalitkin
    26.09.2016 01:31

    Вот интересно, если какой то исходный код по GPL кто нибудь форкнет и выложит под MIT, или наоброт
    кому нибудь до этого дело будет?


    1. Raegdan
      26.09.2016 07:09
      +1

      Пермиссив в копилефт превращать можно, наоборот — нет.

      Будет ли кому-либо дело — в статье очень правильное разъяснение на пальцах: лицензия — это обещание правообладателя не подать в суд за определенные действия над произведением. Но подать в суд — в любом случае право, а не обязанность, так что какой-нибудь правообладатель может просто забить на пирата, например если пират нанес ущерба меньше чем судебная пошлина.


      1. blackstrip
        26.09.2016 19:41

        А если правообладатель напишет одну лицензию, я позаимствую у него код, а потом изменит через год лицензию на более жесткую, и потом скажет в суде «ничего не знаю, у меня украли код» — сможет он меня то засудить? какой вес в суде имеют файлы с текстом «запрещаю делать то-то, разрешаю то-то», и какой государственный орган принимает регистрацию таких лицензий и отслеживает изменения в них? или лицензия это просто кусок текста?


  1. Gugic
    26.09.2016 07:48

    А насколько с юридической точки зрения хороша http://www.wtfpl.net/?


    1. witbier
      26.09.2016 11:22
      +3

      Очень плохая, не содержит отказа от гарантий.


  1. maaGames
    26.09.2016 09:17
    +5

    Почему пишут «Copyright ©», ведь это тавтология?


  1. vdmitriyev
    26.09.2016 10:53
    +1

    Есть еще отличный на мой взгляд доклад на тематику лицензирования с PyCon 2016 "What You Need to Know About Open Source Licenses" — https://www.youtube.com/watch?v=9kGrKBOytYM


  1. f0rk
    26.09.2016 12:20
    +3

    Меня вот интересует, что понимается под «значимой частью» программного обеспечения?
    Вот например https://github.com/mtschirs/js-objectdetect/blob/master/js/objectdetect.js:

    /**
     * Converts from a 4-channel RGBA source image to a 1-channel grayscale
     * image. Corresponds to the CV_RGB2GRAY OpenCV color space conversion.
     * 
     * @param {Array} src   4-channel 8-bit source image
     * @param {Array} [dst] 1-channel 32-bit destination image
     * 
     * @return {Array} 1-channel 32-bit destination image
     */
    convertRgbaToGrayscale = function(src, dst) {
      var srcLength = src.length;
      if (!dst) dst = new Uint32Array(srcLength >> 2);
    
      for (var i = 0; i < srcLength; i += 2) {
        dst[i >> 2] = (src[i] * 4899 + src[++i] * 9617 + src[++i] * 1868 + 8192) >> 14;
      }
      return dst;
    }
    

    Я взял эту реализацию общеизвестного алгоритма, со временем, в моем коде она превратилась в:
    const GRAYSCALE_COEF_R = 4899;
    const GRAYSCALE_COEF_G = 9617;
    const GRAYSCALE_COEF_B = 1868;
    
    /**
     * Converts RGBA image to grayscale.
     *
     * @param {ArrayBuffer} src Source buffer with 4-channel RGBA image
     * @param {ArrayBuffer} dst Destination buffer for 8bit 1-channel grayscale image
     */
    function grayscale(src, dst) {
        const srcView = new Uint8Array(src);
        const dstView = new Uint8Array(dst);
    
        for (let i = 0; i < srcView.length; i += 4) {
            dstView[i >> 2] = ((srcView[i] * GRAYSCALE_COEF_R) +
                               (srcView[i + 1] * GRAYSCALE_COEF_G) +
                               (srcView[i + 2] * GRAYSCALE_COEF_B) + 8192) >> 14;
        }
    }
    

    Означает ли это, что я использую «значимую часть» библиотеки https://github.com/mtschirs/js-objectdetect?


    1. Aingis
      26.09.2016 17:10

      Не юрист, но по мне так вы взяли идею, и написали полностью свой код. По законам РФ идеи не патентуются. Правда, можно запатентовать «способ обработки данных» и тогда вопрос заключается в том, является ли ваш код патентуем, или можно заявить, что он тривиален, так как его напишет любой специалист на основе имеющихся данных.