Лицензирование
Лицензирование ПО — это юридический механизм, регулирующий права и обязанности пользователей и разработчиков при использовании, распространении и модификации программ. Лицензия определяет, что можно и нельзя делать с ПО, защищая авторские права и устанавливая правила его применения.
Виды лицензий
Проприетарная
Такая лицензия как правило защищает авторские и коммерческие интересы разработчика или компании.
- исходный код закрыт
- пользователь получает ограниченное право на использование, но не владеет ПО
- исключительные права сохраняются за разработчиком
- запрет на модификацию, обратную разработку и свободное распространение
- может включать платную подписку, ограничения на сферу применения
Разрешительная
Такая лицензия как правило имеет минимальные ограничения и предоставляет пользователям широкую свободу использования, модификации и распространения, в том числе в составе проприетарных программ.
- исходный код открыт
- разрешает свободное изменение и коммерческое использование
- не требует, чтобы производные проекты распространялись под той же лицензией
- может включать отказ от гарантий и ограничение ответственности
Copyleft
Вид лицензии гарантирующий, что программа и её производные работы остаются свободными и открытыми.
- исходный код открыт
- можно свободно использовать, изменять и распространять ПО
- любая производная работа должна распространяться под той же лицензией
Free and Open Source Software
Free and Open Source Software (FOSS) — это термин, объединяющий концепции свободного ПО (free software) и открытого ПО (open source software).
Принципы открытого ПО
Согласно Open Source Initiative:
- распространение: лицензия не должна ограничивать в продаже или передаче ПО; лицензия не должна требовать платы за продажу
- исходный код: программа должна включать исходный код и должна допускать распространение как в виде исходного кода, так и в скомпилированном виде
- производные работы: лицензия должна разрешать производные работы и позволять распространять их на тех же условиях, что и исходная лицензия
- лицензия должна явно разрешать распространение программ, созданных на основе измененного исходного кода
- лицензия не должна дискриминировать какое-либо лицо или группу лиц
- лицензия не должна ограничивать использование программы в определенной сфере деятельности
- распространение лицензии: права, прилагаемые к программе, должны распространяться без необходимости оформления дополнительной лицензии
- права, прилагаемые к программе, не должны зависеть от того, является ли программа частью определенного дистрибутива программного обеспечения.
- лицензия не должна накладывать ограничения на другие программы, распространяемые вместе с лицензионной программой
- ни одно из положений лицензии не может быть обусловлено какой-либо отдельной технологией или стилем интерфейса.
Принципы свободного ПО
Согласно Free Software Foundation:
- свобода использования программы по своему усмотрению, для любых целей
- свобода изучать, как работает программа, и изменять её по своему усмотрению; необходимым условием для этого является доступ к исходному коду
- свобода распространения копий
- свобода распространять копии измененных версий
Лицензии
https://spdx.org/licenses
https://choosealicense.com/licenses
MIT
Разрешительная лицензия с открытым исходным кодом, позволяющая свободное использование, модификацию, распространение и интеграцию кода (включая коммерческое применение) при условии сохранения уведомления об авторских правах и текста лицензии в копиях ПО.
Она не требует раскрытия исходного кода производных продуктов, не налагает ограничений на лицензирование изменённых версий и освобождает автора от ответственности за возможные убытки.
Apache 2.0
Разрешительная лицензия с открытым исходным кодом, разрешающая коммерческое использование, модификацию и распространение кода при условии сохранения уведомлений об авторских правах, текста лицензии, а также явного указания внесённых изменений.
В отличие от MIT, она включает защиту от патентных исков и требует документирования значимых модификаций. Лицензия позволяет использовать код в проприетарных продуктах без обязательства открывать исходный код, но изменения в исходных файлах должны оставаться под этой лицензией.
GNU GPLv3
Copyleft лицензия с открытым исходным кодом, требующая, чтобы все производные работы распространялись под той же лицензией с обязательным предоставлением полного исходного кода.
Она защищает свободу пользователей: запрещает ограничивать модификацию ПО, гарантирует патентные права для всех пользователей и запрещает введение дополнительных юридических ограничений.
Примеры
- Linux: GPLv2
- LLVM: Apache 2.0 with LLVM Exceptions
- nginx: BSD-2-Clause
- React: MIT
- TensorFlow: Apache 2.0