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

OK?

Я не буду рассматривать GPL/LGPL, потому что они — зло, их применение никому не понятно и они мне не нравятся (это тема для отдельного поста). Если не согласны со мной, тогда вы, скорее всего, используете их для своих проектов, а значит лицензию уже выбрали и вам нет смысла читать дальше. Мы же выберем более свободную лицензию.

Начнем с нелицензии.

Public Domain

Можно вообще отказаться от всех прав на свой код и сделать из него «всеобщее достояние». Public domain — это не лицензия. Вы отказываетесь от всех своих прав на код, и он не будет регулироваться законами об авторском праве (естественно, вы по прежнему можете делать с ним что угодно — даже продавать лицензии). Любой может использовать ваш код как хочет, может встраивать в любые проекты без указания авторства.

Наверное, самый известный проект в public domain — SQLite. И автор SQLite не рекомендует отказываться от копирайта для проектов, потому что 1) public domain признается не во всех странах, 2) чтобы использовать код контрибьюторов, им надо отказывается от копирайта на этот код, а для некоторых работников фирм еще и делать это на бумаге и заверять ее у работодателя.

Public domain можно использовать для коротких кусочков кода, но для проектов, в которые планируется принимать патчи, не надо отказываться от копирайта из-за вышеперечисленных проблем.

MIT, New BSD

Это две короткие лицензии. Я даже выложу полный текст MIT лицензии (на русском). Английскую версию можно найти тут.

Copyright © [год] [владельцы прав]

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

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

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

(Перевод с Википедии)

В New BSD License написано почти то же самое.

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

Основная ошибка в применении MIT/BSD-лицензий в том, что сам текст лицензии не пишут. Вместо этого упоминают, например, «Licensed under MIT-style license», но ведь в самой лицензии написано «Вышеупомянутый копирайт и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения». На эту лицензию нельзя ссылаться «by reference», нужно прикладывать текст. Это, конечно, ерундовая проблема.

А самая большая проблема в том, что MIT/BSD не объясняют статус кода от контрибьюторов. «Вышеупомянутый копирайт и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.» Патч — не копия и не всегда значимая часть продукта. А это значит что контрибьютор может сохранить за собой все авторские права на свой код. А потом, когда ваш проект станет суперпопулярным, запросить кучу денег за использование его кода. Это теория, и, еще раз, я не юрист.

Короче, есть нормальная лицензия, которая объясняет все права и обязанности, и позволяет использовать код практически так же, как под MIT/BSD лицензией:

Apache License 2.0

Полный текст занимает около 4 страниц, но зато в нем все подробно описано.

Как и в MIT/BSD:

  1. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

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

Проекты под Apache License можно использовать в коммерческом коде, и совсем не обязательно выпускать исходники, достаточно приложить копию этой лицензии и указать авторов и контрибьюторов (если в проекте есть файл «NOTICE»).

На лицензию Apache можно ссылаться «by reference», то есть просто включить вот такой текст вместо полной лицензии:

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the «License»); you may not use this file except in compliance with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an «AS IS» BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Так что преимущества в краткости у BSD/MIT нет.

В общем, используйте Apache License, Version 2.0 для своих опенсорсных проектов!