Перед тем как выложить software-продукт в сеть, хорошо бы подумать об авторских правах и возможных нюансах использования вашего кода. Здесь на помощь приходят open-source лицензии. Сегодня мы рассмотрим наиболее популярные из них:
- GNU GPL
- MIT
- Apache 2.0
- MPL v2.0
- The Unlicense
Общие понятия
Когда речь идет о лицензиях, вам могут встретиться следующие термины:
- Копилефтная лицензия — требующая распространять производные продукты под такой же лицензией. То есть, допустим, вы использовали в своем проекте стороннюю библиотеку с копилефтной лицензией X. Вам придется также лицензировать продукт Х.
- Разрешительная лицензия не накладывает никаких ограничений. Использовав чужой модуль, обладающий такой лицензией, вы можете распространять конечный продукт под любой лицензией, как коммерческой, так и open-source.
- Совместимость. Вы можете использовать в качестве компонентов своего проекта стороннее ПО с лицензиями X, Y, Z, если X, Y, Z совместимы с лицензией вашего проекта.
GNU General Public License
Самое важное, что вам нужно знать о GNU GPL это:
- Вы должны предоставить для изучения исходный код вашей программы, даже если распространяете продукт в скомпилированном виде.
- Если вы использовали в вашем проекте ПО, лицензированное GNU GPL, конечный продукт также должен быть лицензирован GNU GPL. То же касается модификации и распространения версий чужого кода.
MIT
Лицензия MIT наиболее «на слуху» в мире свободного ПО. Если разработчику не важны патентные права и в каком виде будет распространятся его код, оказавшись в сети, выбор часто падает на MIT.
- Позволяет безвозмездное использование ПО без ограничений: включая изменение, распространение и продажу копий.
- Конечный продукт можно распространять под любой лицензией.
- Исходные коды предоставлять не обязательно.
- Отказ от гарантий. Пользователь использует ПО на свой страх и риск.
- Отказ от ответственности. Вы ничего не сможете предъявить разработчику.
- Единственным обязательным условием является указание лицензии и автора.
Apache 2.0
В отличие от MIT, делает более сильный акцент на авторские права. В шапке каждого файла исходного кода нужно указать авторство:
Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the «License»);
Это не обязательно делать в исходном коде — можно использовать файл NOTICE. Если вы используете в проекте чужой компонент под лицензией Apache 2.0, содержащий свой файл NOTICE, вы обязаны скопировать его содержимое в конечный продукт.
Apache 2.0 является разрешительной, то есть конечный продукт с компонентами Apache 2.0 может иметь любую лицензию. Требует упоминания исходного авторства, а также указания всех изменений, внесенных в работу.
Mozilla Public License v2.0
MPL является копилефтной лицензией, но не для целого проекта, а для отдельных его файлов.
- Если вы изменили файл, он должен остаться под MPL 2.0.
- Можно без ограничений добавлять в проект компоненты любых лицензий.
The Unlicense
Попытка сделать код общественным достоянием и отказаться от авторства.
Beerware
Лицензия с забавным названием. Является разрешительной и не имеет ограничений. Содержит необязательное условие купить автору пива (выпить в честь автора), если вам понравился его проект :)
Вывод
Хотите, чтобы другие разработчики делились улучшениями вашего продукта? Выбирайте GNU GPL или MPL. Важен вопрос авторских прав? Тогда вам подойдет Apache 2.0. Нет точных требований к лицензии? Можно выложить код в интернет, лицензировав его MIT. Полный список лицензий есть на сайте choosealicense.