Лицензия MIT разрешает делать с кодом почти всё: использовать, менять, продавать, встраивать в закрытый продукт. Условие одно - сохранить уведомление об авторских правах и текст лицензии во всех копиях. Лицензия GPL строже: если вы передаёте другим программу со встроенным GPL-кодом, всю программу придётся распространять под GPL (раздел 5c GNU GPL v3).
Для агентства, которое хочет лицензировать свой код, отсюда простой вывод. Зависимости под MIT, BSD или Apache 2.0 сделке почти не мешают. Код под GPL или AGPL внутри закрытого модуля может её сорвать, и найти его нужно до переговоров.
Общая схема лицензирования разобрана в материале лицензирование программного обеспечения.
Что разрешает лицензия MIT и что она требует
Текст MIT умещается на один экран. Он разрешает любому, кто получил копию, без ограничений:
- использовать и копировать;
- изменять и объединять с другим кодом;
- публиковать и распространять;
- сублицензировать и продавать.
Условие: уведомление об авторских правах и текст разрешения должны быть во всех копиях или существенных частях программы. Код поставляется «как есть», автор не отвечает за ошибки.
Что такое лицензия GPL и когда она требует открыть ваш код
GPL v3 различает использование программы и её передачу другим. Запускать, менять и распространять внутри компании программу, которую вы никому не передаёте, можно без условий (раздел 2). Взаимодействие с пользователем по сети без передачи копии передачей не считается (раздел 0).
Условия включаются, когда копия уходит наружу. Тогда всё произведение, включая ваш код, нужно лицензировать под GPL каждому получателю копии (раздел 5c).
| Что вы делаете с GPL-кодом | Нужно ли открывать свой код под GPL |
|---|---|
| Внутренний инструмент агентства | Нет |
| SaaS на сервере агентства, клиент работает через браузер | Нет, если это GPL. Для AGPL да |
| Передаёте подрядчику, чтобы он доработал код только для вас | Нет, GPL это прямо разрешает (раздел 2) |
| Поставляете клиенту программу с GPL-кодом внутри | Да, клиент получает её под GPL |
| Продаёте закрытую лицензию на модуль со встроенным GPL-кодом | Да, и закрытой лицензии не получится |
AGPL, LGPL, Apache 2.0: что ещё встречается в репозитории
| Лицензия | Что требует | Риск для коммерческой лицензии |
|---|---|---|
| MIT | Сохранить копирайт и текст лицензии | Низкий |
| Apache 2.0 | Приложить текст лицензии, пометить изменённые файлы, сохранить уведомления и файл NOTICE (раздел 4) | Низкий |
| LGPL v3 | Комбинированную работу можно передавать на своих условиях, если они не запрещают менять саму библиотеку и делать обратную разработку для отладки таких изменений, плюс уведомления (раздел 4) | Средний |
| GPL v3 | Всё произведение под GPL при передаче (раздел 5c) | Высокий |
| AGPL v3 | Как GPL, плюс изменённая версия должна предлагать исходный код пользователям, работающим с ней по сети (раздел 13) | Высокий, в том числе для SaaS |
Как open source лицензии работают по закону РФ
В РФ MIT, GPL и другие свободные лицензии подпадают под открытую лицензию по ст. 1286.1 ГК РФ. Правила такие:
- это простая (неисключительная) лицензия и договор присоединения;
- письменная форма считается соблюдённой, если лицензия указывает действия, которые означают согласие;
- лицензия бесплатна, если в ней не сказано иное;
- для программ без указанного срока она действует весь срок исключительного права;
- без указанной территории она действует по всему миру.
Можно ли выпустить свой код под GPL и продавать коммерческую лицензию
Можно, если весь код принадлежит агентству. Правообладатель распоряжается своим правом любым способом, который не противоречит закону (п. 1 ст. 1233 ГК РФ). Сама GPL прямо говорит, что не отменяет разрешений, полученных отдельно (раздел 5c).
Так устроено двойное лицензирование:
- публичная версия выходит под GPL или AGPL, её берут те, кто готов открыть свой код;
- компании, которые хотят закрытый продукт, покупают у вас коммерческую лицензию на тот же код;
- обе лицензии простые, код остаётся вашим.
Как проверить репозиторий перед лицензированием или продажей
- Выгрузите список всех зависимостей вместе с транзитивными: из package.json, requirements.txt, go.mod и аналогов.
- Прогоните репозиторий через сканер лицензий. Он найдёт и скопированные файлы, которых нет в манифестах.
- Отметьте всё под GPL, AGPL и лицензиями без явного названия.
- Для каждого такого компонента решите: заменить, убрать из поставки или договориться с правообладателем о коммерческой лицензии.
- Соберите файл с текстами всех лицензий и приложите список к договору.
Чистый от GPL код дороже и продаётся быстрее.
Сколько он стоит, разобрано в материале сколько стоит исходный код. Как его продать целиком: как продать репозиторий. Как оформить лицензию: лицензионный договор на программное обеспечение.