Проверка совместимости лицензий
Проверьте, можно ли включить чужой код в свой проект и распространять их вместе. Результат — общее толкование; при наличии исключений или дополнительных разрешений он может отличаться.
Материалы сайта носят общий информационный характер и не являются юридической консультацией. Решения о распространении, договорах и спорах принимайте после консультации с юристом или другим специалистом.
Полная таблица совместимости
Строки — заимствуемый код, столбцы — проект, вместе с которым он распространяется. Рассматривается случай копирования или объединения кода в одну программу, которая затем распространяется.
| Код ↓ / Проект → | Проприетарное ПО | MIT | Apache-2.0 | GPL-3.0 | GPL-2.0 | GPL-2.0+ | LGPL-3.0 | LGPL-2.1 | AGPL-3.0 | MPL-2.0 | EPL-2.0 | BSD-3-Clause | BSD-2-Clause | ISC | 0BSD | BSL-1.0 | Unlicense | CC0-1.0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MIT | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно с условиями | Можно | Можно с условиями | Можно с условиями |
| Apache-2.0 | Можно | Можно | Можно | Можно | Нельзя | Можно с условиями | Можно | Нельзя | Можно | Можно | Можно | Можно | Можно | Можно | Можно с условиями | Можно | Можно с условиями | Можно с условиями |
| GPL-3.0 | Нельзя | Нельзя | Нельзя | Можно | Нельзя | Можно с условиями | Можно с условиями | Можно с условиями | Можно | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя |
| GPL-2.0 | Нельзя | Нельзя | Нельзя | Нельзя | Можно | Можно с условиями | Нельзя | Можно с условиями | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя |
| GPL-2.0+ | Нельзя | Нельзя | Нельзя | Можно | Можно | Можно | Можно с условиями | Можно с условиями | Можно с условиями | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя |
| LGPL-3.0 | Можно с условиями | Можно с условиями | Можно с условиями | Можно | Нельзя | Можно с условиями | Можно | Можно с условиями | Можно | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями |
| LGPL-2.1 | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями |
| AGPL-3.0 | Нельзя | Нельзя | Нельзя | Можно с условиями | Нельзя | Можно с условиями | Можно с условиями | Можно с условиями | Можно | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя | Нельзя |
| MPL-2.0 | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями |
| EPL-2.0 | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями | Можно с условиями |
| BSD-3-Clause | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно с условиями | Можно | Можно с условиями | Можно с условиями |
| BSD-2-Clause | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно с условиями | Можно | Можно с условиями | Можно с условиями |
| ISC | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно с условиями | Можно | Можно с условиями | Можно с условиями |
| 0BSD | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно |
| BSL-1.0 | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно с условиями | Можно | Можно с условиями | Можно с условиями |
| Unlicense | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно |
| CC0-1.0 | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно | Можно |
Что такое совместимость
Две лицензии «совместимы», если программу, объединяющую оба кода, можно распространять, соблюдая условия обеих лицензий. У совместимости есть направление: код MIT можно включить в проект GPL, но если включить код GPL в проект MIT, всё объединённое произведение должно следовать условиям GPL, и «проектом MIT» оно остаться не может.
Какую ситуацию предполагает таблица
- Чужой код копируется или статически компонуется и распространяется как одна программа.
- При использовании только внутри, без распространения, большинство условий не возникает (исключение — сетевое положение AGPL).
- Если код запускается отдельным процессом или взаимодействует только через командную строку или сеть, это может считаться не «объединением», а «совокупностью» (aggregate), и вывод может быть иным.
- Если LGPL-библиотека только используется через динамическую компоновку, правила значительно мягче, чем в таблице. См. пункт «Use a library» матрицы совместимости GNU.
Основания для выводов
- Сочетания лицензий GNU: матрица совместимости из «FAQ по лицензиям GNU» FSF (случай copy code)
- Apache-2.0 и GPL: список лицензий FSF — совместима с GPL-3.0, несовместима с GPL-2.0
- MPL-2.0: разделы 1.12 (Secondary License) и 3.3 (Larger Work) текста лицензии
- EPL-2.0: Exhibit A текста лицензии (указание Secondary License)
Код с исключениями (например, Classpath Exception, Linux-syscall-note) или дополнительными разрешениями может отличаться от таблицы. Если решение важно, сверьтесь с текстом лицензии и мнением специалиста.