# Лицензии программного обеспечения

Справочник агента «Юрист по ПО». Лицензия — правовой инструмент, определяющий, как можно использовать, изменять и распространять ПО. В РФ лицензии на ПО оформляются как лицензионные договоры, в т.ч. открытые лицензии (ст. 1286.1 ГК РФ).

## Базовые понятия

- **Проприетарная лицензия** — права ограничены: обычно запрет копирования, модификации, реверс-инжиниринга, субаренды; часто оплата за использование.
- **Open source (OSI)** — ПО с лицензией, удовлетворяющей 10 критериям OSI (свободное распространение, доступность исходников, право на модификацию и производные и т.д.).
- **Свободное ПО (FSF)** — 4 свободы: запускать для любых целей, изучать и изменять, распространять копии, распространять улучшенные версии.
- **SPDX-идентификатор** — стандартный короткий код лицензии (например `MIT`, `Apache-2.0`, `GPL-3.0-only`), используется в метаданных зависимостей и отчётах.

## Пермиссивные лицензии (permissive)

Разрешают почти всё (использование, модификацию, закрытие исходников, включение в проприетарный продукт) при соблюдении условий атрибуции.

| Лицензия | SPDX | Ключевые условия | Особенности |
|---|---|---|---|
| MIT | `MIT` | Сохранение уведомления об авторстве и текста лицензии в копиях/производных | Самая простая и распространённая; совместима практически со всем |
| BSD-2-Clause | `BSD-2-Clause` | Атрибуция, запрет использования имени автора для рекламы | |
| BSD-3-Clause | `BSD-3-Clause` | Как BSD-2 + запрет использования имени автора в рекламе без разрешения | |
| ISC | `ISC` | Атрибуция | Похожа на MIT, короче |
| Apache-2.0 | `Apache-2.0` | Атрибуция + уведомление об изменениях (NOTICE), явная патентная лицензия | Патентная «граната»: грант патентов на вклад; совместима с GPL-3.0 |
| Unlicense / CC0 | `Unlicense` / `CC0-1.0` | Отказ от прав (public domain по возможности) | CC0 — не для ПО в РФ напрямую (нет института public domain); Unlicense — текст-отказ |

**Вывод для проприетарного продукта:** пермиссивные лицензии безопасны — можно включить код в закрытый продукт, выполнив условия атрибуции (обычно копия текста лицензии + уведомление об авторстве в составе дистрибутива).

## Копилефт-лицензии (copyleft)

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

| Лицензия | SPDX | Обязательство | Особенности |
|---|---|---|---|
| GPL-2.0 | `GPL-2.0-only` | Производные работы — под GPL-2.0 с открытием исходников | Классический «сильный» копилефт; несовместима с Apache-2.0 |
| GPL-3.0 | `GPL-3.0-only` | Как GPL-2.0 + явная патентная лицензия, защита от TiVo-зации (антиблокировка) | Совместима с Apache-2.0; несовместима с GPL-2.0 (можно под «GPL-2.0-or-later» объединять) |
| LGPL-2.1 / LGPL-3.0 | `LGPL-2.1-only` / `LGPL-3.0-only` | Копилефт для самой библиотеки; использование через динамическую компоновку не «заражает» вызывающий код | Слабее GPL: проприетарное приложение может использовать LGPL-библиотеку динамически |
| AGPL-3.0 | `AGPL-3.0-only` | Как GPL-3.0 + обязательство открытия исходников при предоставлении ПО через сеть (SaaS) | Критична для серверных продуктов и веб-сервисов |
| MPL-2.0 | `MPL-2.0` | Копилефт на уровне файлов: изменённые файлы — под MPL, остальное можно под другой лицензией | «Слабый» копилефт; файловый уровень; совместима с GPL |
| EPL-2.0 | `EPL-2.0` | Копилефт на уровне модуля; патентный грант | Используется Eclipse Foundation |

**Ключевые риски:**
- Включение GPL/AGPL-кода в проприетарный продукт обычно **недопустимо** без открытия исходников продукта под GPL.
- **AGPL** опасна для SaaS: использование AGPL-кода в серверной части веб-сервиса обязывает открыть исходники сервиса (при передаче через сеть).
- **LGPL + статическая компоновка / копирование кода** может «заразить» продукт; динамическая компоновка (shared library) обычно безопасна.
- **Копирование кода** (copy-paste) из copyleft-проекта = создание производной работы со всеми последствиями.

## Лицензии Creative Commons (для контента, не для ПО)

- `CC0-1.0` — отказ от прав (public domain).
- `CC-BY-4.0` — атрибуция.
- `CC-BY-SA-4.0` — атрибуция + share-alike (производные под той же лицензией).
- `CC-BY-NC-*` — запрет коммерческого использования.
- `CC-BY-ND-*` — запрет производных работ.
- **Не рекомендуется для ПО** (нет чётких правил для кода, нет патентных положений); для кода лучше CC0 (отказ) или MIT.

## Совместимость лицензий (кратко)

| Комбинация | Совместимо? |
|---|---|
| MIT/BSD/ISC + любая лицензия | Да |
| Apache-2.0 + GPL-3.0 | Да (Apache-2.0 совместима с GPL-3.0) |
| Apache-2.0 + GPL-2.0 | Нет |
| GPL-2.0 + GPL-3.0 | Нет (если не «or-later») |
| GPL + LGPL | Да (LGPL-код можно включать в GPL-проект) |
| MPL-2.0 + GPL | Да |
| GPL + проприетарный продукт | Только если продукт открывается под GPL |
| AGPL + проприетарный SaaS | Нет (по умолчанию) |

## Dual licensing (двойное лицензирование)

Правообладатель предлагает выбор: например, open source-лицензия (GPL/AGPL) ИЛИ коммерческая лицензия. Пользователь выбирает одну. Частая модель для библиотек (пример: MySQL, Qt, MongoDB).

## Проверка лицензий зависимостей (compliance)

- **SPDX-метаданные** в go.mod / package.json / Cargo.toml и т.д.
- Инструменты: `go-licenses`, `license-checker` (npm), `cargo-license`, FOSSA, ScanCode Toolkit, GitHub Dependency Insights.
- В отчёте фиксировать: компонент, версия, SPDX-идентификатор, текст лицензии, совместимость с моделью распространения продукта.
- Атрибуция: собрать THIRD_PARTY_NOTICES / NOTICE с текстами лицензий и уведомлениями об авторстве.

## Открытая лицензия в РФ (ст. 1286.1 ГК РФ)

- Открытая лицензия — лицензионный договор, заключаемый в упрощённом порядке (акцепт условий, например началом использования).
- Действует на всей территории мира, на срок действия исключительного права, если не указано иное.
- Лицензиар вправе отказаться от договора в одностороннем порядке, если лицензиат предоставляет третьим лицам права на ПО (например, сублицензии) в нарушение условий.
- Для ПО открытые лицензии (MIT, GPL и т.д.) признаются в РФ лицензионными договорами.

## Ответственность и риски

- Нарушение условий лицензии = нарушение исключительного права (ст. 1252, 1301 ГК РФ): компенсация от 10 000 до 5 000 000 ₽ или двукратная стоимость права использования / контрафактных экземпляров; также возможны изъятие контрафакта, судебные запреты.
- Для иностранных правообладателей — Бернская конвенция обеспечивает охрану в РФ.
- Ответственность за отсутствие лицензионной чистоты (license hygiene) ложится на распространителя продукта.

## Чек-лист для ответа про лицензии

1. Какой компонент и какая лицензия (SPDX)?
2. Как используется: включение кода, компоновка (динамическая/статическая), сервис (SaaS)?
3. Как распространяется продукт: закрытый, open source, под какой лицензией?
4. Есть ли патентные положения (Apache-2.0, GPL-3.0) и патентные риски?
5. Выполнены ли условия атрибуции и доставлен ли текст лицензии?
