Обзор наиболее популярных лицензий на программное обеспечение с открытым исходным кодом для стартапов на ранних стадиях развития с открытым исходным кодом
Как основателю компании с открытым исходным кодом, вам предстоит принять множество решений с самого начала ее существования. Несомненно, лицензирование - одно из важных решений. Часто основатели перегружены множеством доступных вариантов лицензирования - и я их понимаю!
Авторское лево (copyleft) — это обобщенный метод сделать программу (или другую работу) свободной (в смысле свободы, а не “нулевой цены”) и потребовать, чтобы все последующие измененные и дополненные версии программы тоже оставались свободными.
В этой статье я хочу рассказать о самых популярных лицензиях на открытый исходный код, чем они отличаются, когда лучше выбрать одну, а когда другую. Также я покажу вам пару примеров того, как open-source стартапы реализуют это на практике.
Авторское лево и неавторское лево
Прежде чем мы перейдем к подробному рассмотрению наиболее популярных лицензий, позвольте мне кратко рассказать о важной концепции лицензий с авторским левом.
Лицензии с авторским левом
Лицензии с авторским левом требуют, чтобы распространяемые копии и производные работы оставались под одной и той же лицензией. Проще говоря, вы можете свободно изменять и распространять исходный код до тех пор, пока он остается под той же лицензией. Например, вы не можете создать программу с закрытым исходным кодом, включающую часть программы с лицензией авторского лева.
Примеры лицензий с авторским левом:
- GNU General Public License (GPL)
- GNU Affero Public License (AGPL)
- Общественная лицензия Mozilla (MPL)
- Server Side Publice License (SSPL)
Лицензии без копилефта (разрешительные)
Некопилефтные лицензии позволяют использовать исходный код в производных произведениях под другой лицензией. Таким образом, вы можете взять эту программу и создать новую с другой лицензией (даже с близким исходным кодом).
- Лицензия MIT
- Лицензия Apache 2.0
- Лицензия BSD
Таблица лицензий
Здесь приведена краткая информация о том, чем лицензии с открытым исходным кодом отличаются друг от друга. Если вам нужна более подробная информация, перейдите в соответствующие разделы, нажав на название лицензии.
Лицензия | Разрешения | Защита Создателя | Длина | Выбор |
Лицензии без авторского лева (разрешительные) | ||||
MIT | Все | Отсутствие обязательств и гарантии | Короткий | Для максимального внедрения |
Apache License 2.0 | Все, кроме товарных знаков. Требуется для обозначения существенных изменений | Никаких обязательств и гарантий, никакого патентного троллинга | Средний | При страхе перед патентным троллингом |
Two-clause BSD | Все | Отсутствие обязательств и гарантии | Короткие | Как аналог лицензии MIT |
Three-clause BSD | Все, кроме использования имен соавторов и организации для продвижения сторонних проектов | Нет обязательств и гарантии, защита от рекламных акций | Короткие | Для максимального внедрения с ограничениями |
Four-clause BSD (outdated) | Все, кроме использования имен соавторов и организации для продвижения сторонних проектов. Требует от других указывать авторство в рекламе. | Нет обязательств и гарантии, защита от рекламных акций, требует атрибуции | Короткие | Для максимального внедрения с ограничениями |
Копилефт | ||||
GPLv3 | Все, если только измененная версия программы не остается под той же лицензией. Требуется отметить основные изменения | Никаких обязательств и гарантий, никакого патентного троллинга, требует обнародовать код модифицированного программного обеспечения, если оно распространяется в двоичном виде | Long | За запрет на монетизацию модифицированной версии программного обеспечения, распространяемой в двоичном виде |
AGPL | Все, если только измененная версия программного обеспечения не остается под той же лицензией. Требуется пометить основные изменения | Никаких обязательств и гарантий, никакого патентного троллинга, требует выпуска кода модифицированного программного обеспечения, если оно распространяется в двоичном виде или через сетевой доступ | Long | За запрет на монетизацию модифицированной версии программного обеспечения, распространяемой через двоичный файл или сетевой доступ |
MPL | Все, если только код, лицензируемый MPL, не хранится в отдельных файлах | Никаких обязательств и гарантий, принуждает не "смешивать" в одном файле лицензионный код MLP и другой код | Long | За запрет на "внедрение" своего кода в проприетарное программное обеспечение |
Все = разрешает использовать, изменять и распространять программное обеспечение в частных, внутренних и коммерческих целях
Никакой ответственности и гарантии = создатель программного обеспечения в любом случае не несет ответственности за ущерб, претензии или другие обязательства
Лицензия MIT
Это, безусловно, самая известная лицензия с открытым исходным кодом. Она очень свободная, то есть любой может использовать ваш код в личных, внутренних и коммерческих целях, изменять его, распространять и делать практически все, что угодно. С другой стороны, вы как программист также не несете никакой ответственности за качество программного обеспечения.
Когда ее использовать?
Лицензия MIT особенно полезна в тех случаях, когда вы действительно заботитесь об одобрении пользователей - например, когда вы создаете альтернативу популярному SaaS-продукту с открытым исходным кодом. Таким образом, вы можете превзойти существующие решения, просто раздавая базовую версию бесплатно. Хорошим примером здесь является OpenReplay, который делает альтернативу LogRocket.
Еще одна веская причина выбрать лицензию MIT - это когда вы создаете что-то новое, например, библиотеку. Разработчикам нужно время, чтобы поиграть с ней, чтобы освоить ее, и поэтому важно сделать ее на 100% открытой - разработчики ненавидят, когда им что-то запрещают делать :) Если ваш продукт с открытым исходным кодом предназначен для того, чтобы быть компонентом других проектов (а не самостоятельным продуктом), то лицензия MIT, несомненно, ваш выбор. Хороший пример здесь - GatsbyJS, который является Javascript-фреймворком для создания статических React-сайтов.
Текст лицензии
Вот ссылка на полный текст этой лицензии. Он довольно короткий и простой. Вы должны просто создать txt-файл и скопировать-вставить в него текст лицензии. Добавьте свое имя и текущий год, поместите файл рядом с исходным кодом и готово! Кстати, GitHub может сделать это автоматически.
Лицензия Apache 2.0
Лицензия Apache License 2.0 очень похожа на лицензию MIT: она позволяет любому использовать код в личных, внутренних и коммерческих целях. Однако есть и некоторые отличия от лицензии MIT:
- Apache License 2.o требует от разработчиков явной пометки любых серьезных изменений в исходном коде.
- Лицензия Apache 2.0 вводит четкие правила в отношении патентования. Программное обеспечение под лицензией Apache, которое было модифицировано, может быть запатентовано конечным пользователем. Лицензия MIT, с другой стороны, не содержит никаких положений по вопросу патентования.
- Лицензия Apache 2.o не позволяет использовать торговые названия, торговые марки и наименования продуктов лицензиара. Это важный пункт для тех, кто заботится об идентичности бренда.
Когда ее использовать?
Как уже упоминалось, Apache License 2.o может быть хорошим выбором, если вы хотите получить все разрешения лицензии MIT, но в то же время вам нужен контроль над вашими торговыми марками и защита от патентного троллинга.
Текст лицензии
Вот ссылка на полный текст лицензии Apache License 2.0. Она длиннее и сложнее, чем лицензия MIT, но использовать ее очень просто - просто заполните два места в квадратных скобках и все!
Лицензия BSD
Существует три версии лицензии BSD: с двумя пунктами, с тремя пунктами и с четырьмя пунктами. С практической точки зрения, двухстатейная лицензия BSD эквивалентна лицензии MIT. Трехклаузная лицензия BSD вводит пункт, запрещающий использовать имена организаций и авторов для поддержки и продвижения сторонних продуктов. Четырехстатейная лицензия BSD идет на один пункт дальше и добавляет требование указывать название организации во всех рекламных материалах, упоминающих программное обеспечение или его возможности. Стоит отметить, что четырехпунктная лицензия BSD считается устаревшей и не принимается Open Source Initiative.
Когда ее использовать?
Откровенно говоря, лицензия BSD редко используется стартапами с открытым исходным кодом - просто потому, что лицензия MIT более популярна и практически идентична ей. Более того, дополнительные пункты из трех- и четырехпунктовых лицензий BSD не очень полезны для стартапов, потому что для проекта на ранней стадии важно каждое упоминание. Например, Appwrite использует лицензию BSD с тремя пунктами.
Текст лицензии
Вот ссылки на лицензии BSD с двумя, тремя и четырьмя пунктами.
Лицензия GPLv3
GPL - это лицензия с авторским левом. Авторское лево означает, что все производные работы должны оставаться под той же лицензией. Практически говоря, лицензия GPL позволяет вам изменять исходный текст и использовать его внутри компании, если только вы не распространяете его среди других людей в двоичном виде. Если вы распространяете модифицированную версию программы в двоичном виде, то вы обязаны выпустить вместе с ней исходный текст. Это происходит потому, что модифицированная версия программы автоматически лицензируется GPL (концепция авторского лева).
Вы можете заметить, что требование "через двоичный файл" несколько натянуто. Так что технически вы можете распространять модифицированную версию программы через сетевой доступ (читай SaaS), и от вас не потребуется выпускать исходный текст, потому что вы не распространяете двоичный файл. Это довольно свободная лазейка в современном мире, поэтому лицензия AGPL была введена для решения этой проблемы.
Итак, вкратце, чтобы использовать код под GPL, нужно следовать нескольким правилам:
- Сохранять оригинальное уведомление об авторских правах
- Включать полный текст лицензии GPL
- Отметить все основные изменения, внесенные в исходный текст
- Выпускать исходный текст измененной программы, а затем распространять ее в двоичном виде.
Помимо этих требований, GPLv3 явно предоставляет конечным пользователям права на патентование измененной версии программы. Эта формулировка очень близка к патентному положению из лицензии Apache License 2.0.
Когда ее использовать?
Лицензия GPL - не самый распространенный выбор для стартапа с открытым исходным кодом. Тем не менее, она может быть хорошим выбором, если вы хотите вести более классический бизнес (не венчурный). Например, популярный движок для сайтов WordPress имеет лицензию GPL. Вероятно, это сделано для того, чтобы люди не могли монетизировать плагины и темы WordPress в обход компании.
Текст лицензии
Вот ссылка на полный текст лицензии GPLv3. Она довольно длинная и требует некоторой дополнительной работы для ее использования, например, получения отказа от авторских прав от вашего работодателя или школы и добавления уведомления о лицензии в каждый файл исходного кода.
Лицензия AGPL
Лицензия AGPL почти идентична лицензии GPLv3, но в нее внесен один дополнительный пункт. Она закрывает лазейку, которая позволяет распространять программы под лицензией GPL по сети (читай SaaS). Поэтому по лицензии AGPL вы должны разрешить скачивание исходного текста, даже если вы никогда не распространяете двоичный файл, но предоставляете услугу.
Когда использовать?
AGPL подходит, если вы не хотите, чтобы ваш код был превращен в SaaS кем-то другим. Хотя она кажется хорошим выбором для стартапа, компании на ранних стадиях никогда не используют ее. Однако есть стартапы с открытым исходным кодом на поздних стадиях, которые используют AGPL. Например, посмотрите, как Grafana недавно перешла с Apache 2.o на AGPL.
Текст лицензии
Вот ссылка на полный текст лицензии AGPL. Руководство по использованию идентично руководству для GPLv3.
Mozilla Public License (MPL)
Общественная лицензия Mozilla также является лицензией с авторским левом, однако ее часто рассматривают как компромисс между лицензиями с авторским левом и без авторского лева. Она позволяет распространять производные работы под другой лицензией, если весь код, лицензированный MPL, хранится в отдельных файлах (когда вы не смешиваете код MPL с другим кодом). Это означает, что вы можете распространять модифицированную версию программы через двоичный или сетевой доступ без выпуска исходного кода, если вы храните MPL's лицензированный код в отдельных файлах.
MPL также включает права на выдачу патентов, принуждает добавлять уведомления об авторских правах и накладывает ограничения на использование торговой марки.
Когда его использовать?
Это хороший выбор для чистых проектов с открытым исходным кодом, которые позволяют пользователям делать расширения. Как вы, вероятно, уже догадались по названию лицензии, браузер Mozilla Firefox имеет лицензию MPL.
Текст лицензии
Вот ссылка на полный текст лицензии MPL. Чтобы применить эту лицензию, вы должны добавить заголовок из Приложения А в каждый файл вашего исходного кода.
Подведение итогов
Как вы уже поняли, существует целый зоопарк лицензий на открытый исходный код. Я лишь описал самые популярные из них.
Трудно дать универсальный совет, но в целом разрешительные лицензии - это хороший выбор для стартапа с открытым исходным кодом на ранней стадии. Причина проста: разрешительные лицензии стимулируют максимальное принятие со стороны сообщества разработчиков. Вы всегда сможете перелицензировать свое программное обеспечение с более жестким вариантом в будущем, если вам это действительно понадобится. Как говорит Пол Грэм, "преждевременная оптимизация - корень всех зол". Так что будьте проще в начале...