Открыть сервис

Лицензия Apache

Лицензия Apache — это свободная лицензия на программное обеспечение, разработанная и поддерживаемая некоммерческой организацией Apache Software Foundation (ASF). Относится к категории пермиссивных (разрешительных) лицензий, позволяющих использовать, изменять и распространять исходный код как в открытых, так и в проприетарных проектах, при условии соблюдения ряда требований. Лицензия Apache является одной из самых распространённых лицензий в мире открытого программного обеспечения, наряду с GNU General Public License (GPL) и MIT License.

История

Лицензия Apache была впервые создана в 1995 году для регулирования распространения программного обеспечения HTTP-сервера Apache, который на тот момент являлся одним из ключевых проектов группы разработчиков, впоследствии ставшей Apache Software Foundation. Первая версия лицензии (Apache License 1.0) была относительно простой и содержала требования к указанию авторства.

В 2000 году была выпущена версия 1.1, которая уточнила некоторые положения, касающиеся рекламных материалов и использования названия «Apache». Однако основным недостатком ранних версий была их привязка к конкретному проекту и отсутствие универсальности.

В 2004 году, после длительного обсуждения в сообществе, была принята версия 2.0 (Apache License 2.0). Она была разработана с учётом опыта других свободных лицензий, в частности GNU General Public License, и стала универсальной, то есть пригодной для использования любым проектом, не обязательно связанным с ASF. С этого момента лицензия Apache 2.0 стала рекомендованной для всех проектов фонда и получила широкое распространение за его пределами.

Основные положения

Лицензия Apache 2.0 представляет собой юридический документ, который предоставляет пользователю широкие права на программное обеспечение при соблюдении нескольких ключевых условий.

Предоставляемые права

Лицензия предоставляет бессрочную, всемирную, безвозмездную, неисключительную и безотзывную лицензию на:

  • Воспроизведение программного обеспечения.
  • Создание производных работ (модификация исходного кода).
  • Распространение оригинальных и модифицированных копий.
  • Публичное исполнение и демонстрацию.
  • Сублицензирование (предоставление прав третьим лицам).

Обязательные условия

Для использования программного обеспечения под лицензией Apache 2.0 необходимо выполнить следующие требования:

  1. Уведомление об авторских правах: При распространении программного обеспечения (как в исходном, так и в скомпилированном виде) необходимо сохранять все уведомления об авторских правах, товарных знаках и патентах, содержащиеся в оригинальном коде.
  2. Копия лицензии: При распространении исходного кода должна быть включена полная копия текста лицензии Apache 2.0. При распространении в объектном (скомпилированном) виде лицензию необходимо включить в документацию или в состав дистрибутива.
  3. Уведомление об изменениях: Если в производную работу вносятся изменения, необходимо указать, что работа была изменена. Обычно это делается путём добавления комментария в файл с исходным кодом или в отдельный файл NOTICE.
  4. Защита товарных знаков: Лицензия не предоставляет права на использование товарных знаков, торговых наименований или логотипов лицензиара, за исключением случаев, когда это необходимо для описания происхождения работы.
  5. Отказ от ответственности: Программное обеспечение предоставляется «как есть», без каких-либо гарантий. Лицензиар не несёт ответственности за убытки, возникшие в результате использования программного обеспечения.

Патентная оговорка

Одной из ключевых особенностей лицензии Apache 2.0 является явная патентная оговорка. Лицензиар предоставляет пользователю лицензию на свои патенты, которые могут быть нарушены при использовании программного обеспечения. Это означает, что если разработчик вносит свой код в проект под лицензией Apache, он автоматически даёт согласие на использование своих патентов, связанных с этим кодом. Однако если пользователь инициирует патентный иск против лицензиара, эта патентная лицензия автоматически прекращается.

Совместимость с другими лицензиями

Лицензия Apache 2.0 считается одной из наиболее совместимых с другими свободными лицензиями. Она совместима с:

  • GNU General Public License версии 3 (GPLv3): Фонд свободного программного обеспечения (FSF) официально признал лицензию Apache 2.0 совместимой с GPLv3. Это означает, что код под лицензией Apache можно включать в проекты под GPLv3, и результирующая работа будет распространяться под GPLv3.
  • MIT License и BSD License: Эти лицензии также являются пермиссивными и имеют схожие требования, что делает их совместимыми.
  • GNU Lesser General Public License (LGPL): Совместимость существует, но требует внимательного анализа, так как LGPL накладывает определённые ограничения на связывание с библиотеками.

Лицензия Apache 2.0 несовместима с GNU General Public License версии 2 (GPLv2). Это связано с тем, что GPLv2 не содержит механизма для обработки патентных оговорок, присутствующих в Apache 2.0. Включение кода под Apache 2.0 в проект под GPLv2 может привести к нарушению условий одной из лицензий.

Применение и распространение

Лицензия Apache 2.0 используется огромным количеством проектов, как крупных, так и небольших. Наиболее известные примеры включают:

  • HTTP-сервер Apache — оригинальный проект, давший название лицензии.
  • Операционная система Android (основная часть кода, за исключением ядра Linux, которое распространяется под GPLv2).
  • Платформа больших данных Apache Hadoop и её экосистема (Spark, Hive, HBase).
  • Веб-сервер Tomcat, сервер приложений JBoss (WildFly).
  • Язык программирования Kotlin (компилятор и стандартная библиотека).
  • Библиотеки для машинного обучения TensorFlow и PyTorch (частично).
  • Многие библиотеки и фреймворки для JavaScript, Python и других языков.

Популярность лицензии Apache объясняется её сбалансированным подходом: она предоставляет разработчикам коммерческого программного обеспечения большую свободу, чем GPL, но при этом содержит более строгие требования к указанию авторства и патентную защиту, чем MIT License.

Критика

Несмотря на широкое признание, лицензия Apache 2.0 подвергается критике по нескольким направлениям:

  • Отсутствие копилефта: Как и другие пермиссивные лицензии, Apache 2.0 не требует, чтобы производные работы распространялись под той же лицензией. Это позволяет компаниям включать код под лицензией Apache в проприетарное программное обеспечение, не открывая свои изменения. Для сторонников строгого копилефта (например, GPL) это является недостатком.
  • Сложность текста: По сравнению с лицензией MIT, текст Apache 2.0 является более длинным и сложным для понимания неспециалистом. Это может отпугивать небольшие проекты, которые предпочитают более простые юридические документы.
  • Патентная оговорка: Хотя патентная оговорка считается преимуществом, она также может создавать сложности. В частности, условие о прекращении патентной лицензии в случае подачи иска может быть истолковано неоднозначно и приводить к судебным спорам.

Источники

  1. Текст лицензии Apache 2.0 (Apache License, Version 2.0).
  2. Официальный сайт Apache Software Foundation (apache.org).
  3. Документация Фонда свободного программного обеспечения (FSF) по совместимости лицензий.
  4. Статья «The Apache License» в журнале Linux Journal (2004).
  5. Анализ лицензий открытого программного обеспечения, проведённый организацией Open Source Initiative (OSI).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →