Skip to main content

Open‑source лицензии

Перед тем как выложить software-продукт в сеть, хорошо бы подумать об авторских правах и возможных нюансах использования вашего кода. Здесь на помощь приходят open-source лицензии. Сегодня мы рассмотрим наиболее популярные из них:

  • GNU GPL
  • MIT
  • Apache 2.0
  • MPL v2.0
  • The Unlicense

Когда речь идет о лицензиях, вам могут встретиться следующие термины:

  • Копилефтная лицензия — требующая распространять производные продукты под такой же лицензией. То есть, допустим, вы использовали в своем проекте стороннюю библиотеку с копилефтной лицензией X. Вам придется также лицензировать продукт Х.
  • Разрешительная лицензия не накладывает никаких ограничений. Использовав чужой модуль, обладающий такой лицензией, вы можете распространять конечный продукт под любой лицензией, как коммерческой, так и open-source.
  • Совместимость. Вы можете использовать в качестве компонентов своего проекта стороннее ПО с лицензиями X, Y, Z, если X, Y, Z совместимы с лицензией вашего проекта.

Самое важное, что вам нужно знать о GNU GPL это:

  • Вы должны предоставить для изучения исходный код вашей программы, даже если распространяете продукт в скомпилированном виде.
  • Если вы использовали в вашем проекте ПО, лицензированное GNU GPL, конечный продукт также должен быть лицензирован GNU GPL. То же касается модификации и распространения версий чужого кода.

Лицензия MIT наиболее «на слуху» в мире свободного ПО. Если разработчику не важны патентные права и в каком виде будет распространятся его код, оказавшись в сети, выбор часто падает на MIT.

  • Позволяет безвозмездное использование ПО без ограничений: включая изменение, распространение и продажу копий.
  • Конечный продукт можно распространять под любой лицензией.
  • Исходные коды предоставлять не обязательно.
  • Отказ от гарантий. Пользователь использует ПО на свой страх и риск.
  • Отказ от ответственности. Вы ничего не сможете предъявить разработчику.
  • Единственным обязательным условием является указание лицензии и автора.

В отличие от MIT, делает более сильный акцент на авторские права. В шапке каждого файла исходного кода нужно указать авторство:

Это не обязательно делать в исходном коде — можно использовать файл NOTICE. Если вы используете в проекте чужой компонент под лицензией Apache 2.0, содержащий свой файл NOTICE, вы обязаны скопировать его содержимое в конечный продукт.

Apache 2.0 является разрешительной, то есть конечный продукт с компонентами Apache 2.0 может иметь любую лицензию. Требует упоминания исходного авторства, а также указания всех изменений, внесенных в работу.

MPL является копилефтной лицензией, но не для целого проекта, а для отдельных его файлов.

  • Если вы изменили файл, он должен остаться под MPL 2.0.
  • Можно без ограничений добавлять в проект компоненты любых лицензий.

Попытка сделать код общественным достоянием и отказаться от авторства.

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

Хотите, чтобы другие разработчики делились улучшениями вашего продукта? Выбирайте GNU GPL или MPL. Важен вопрос авторских прав? Тогда вам подойдет Apache 2.0. Нет точных требований к лицензии? Можно выложить код в интернет, лицензировав его MIT. Полный список лицензий есть на сайте https://choosealicense.com/appendix/.