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

Apache 2.0

Apache License 2.0 — это свободная лицензия на программное обеспечение, разработанная и поддерживаемая некоммерческой организацией Apache Software Foundation (ASF). Она относится к категории разрешительных (permissive) лицензий, предоставляя пользователям широкие права на использование, копирование, модификацию и распространение программного обеспечения, включая возможность создания проприетарных производных продуктов. Лицензия является одной из самых популярных и широко применяемых в мире открытого ПО, наряду с лицензиями MIT и BSD.

История

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

В 2000 году была выпущена версия 1.1, которая смягчила рекламные требования, но сохранила их. Основным недостатком оставалась несовместимость с GNU General Public License (GPL) версии 2.0 из-за конфликта условий о рекламе.

В 2004 году, после длительного обсуждения и анализа юридических практик, ASF выпустила Apache License 2.0. Эта версия была полностью переработана: устранена рекламная оговорка, добавлены явные положения о патентных правах, а также введена стандартная форма уведомления об авторских правах. Apache License 2.0 получила одобрение Free Software Foundation (FSF) как совместимая с GPL версии 3.0, что значительно расширило сферу её применения.

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

Apache License 2.0 предоставляет пользователю следующие права при условии соблюдения определённых обязательств:

Права

  • Использование: право запускать, копировать и использовать программное обеспечение в любых целях, включая коммерческие.
  • Модификация: право изменять исходный код и создавать производные работы.
  • Распространение: право распространять оригинальное или модифицированное программное обеспечение в исходном или скомпилированном виде.
  • Сублицензирование: право передавать полученные права третьим лицам.

Обязательства

  • Уведомление об авторских правах: при распространении программного обеспечения (в любом виде) необходимо сохранять все уведомления об авторских правах, товарных знаках и патентах, содержащиеся в оригинальном коде.
  • Указание изменений: если вносятся изменения в код, это должно быть явно отмечено (например, в файле NOTICE или в комментариях).
  • Сохранение лицензионного текста: копия лицензии должна быть включена в дистрибутив, как правило, в виде файла LICENSE.

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

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

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

Apache License 2.0 является совместимой с GNU General Public License версии 3.0 (GPLv3). Это означает, что код под Apache 2.0 можно включать в проекты, распространяемые под GPLv3, при условии соблюдения обеих лицензий. Однако она несовместима с GPL версии 2.0, так как GPLv2 содержит более строгие требования, которые не позволяют комбинировать код под Apache 2.0 с кодом под GPLv2 в одном производном произведении.

Лицензия совместима с большинством других разрешительных лицензий, таких как MIT, BSD (2- и 3-пунктная), а также с лицензией Creative Commons Zero (CC0).

Применение

Apache License 2.0 используется в тысячах проектов, включая многие крупные и известные. Среди них:

  • Apache HTTP Server — один из самых популярных веб-серверов в мире.
  • Androidоперационная система от Google (ядро Linux распространяется под GPLv2, но пользовательское пространство и библиотеки — под Apache 2.0).
  • Kubernetes — система оркестрации контейнеров, разработанная компанией Cloud Native Computing Foundation (CNCF).
  • Hadoop — фреймворк для распределённой обработки больших данных.
  • Spring Framework — популярный фреймворк для разработки приложений на языке Java.
  • TensorFlow — библиотека для машинного обучения от Google.
  • OpenSSL — криптографическая библиотека (с версии 3.0 перешла на Apache 2.0).

Критика

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

Другая претензия заключается в том, что лицензия не требует раскрытия исходного кода модификаций, что позволяет компаниям создавать проприетарные продукты на основе открытого кода без публикации изменений. Это отличает её от копилефт-лицензий, таких как GPL, которые требуют, чтобы производные работы распространялись под той же лицензией.

Сравнение с другими лицензиями

ХарактеристикаApache 2.0MITGPLv3
ТипРазрешительнаяРазрешительнаяКопилефт
Патентный грантЯвныйОтсутствуетЯвный
Требование раскрытия измененийНетНетДа
Совместимость с GPLv3ДаДаДа
Совместимость с GPLv2НетДаНет
Обязательное уведомлениеДаДаДа

Источники

  • Текст Apache License 2.0 на официальном сайте Apache Software Foundation
  • Free Software Foundation: «Various Licenses and Comments about Them»
  • Open Source Initiative: «The Apache License 2.0»
  • Статья «A Quick Guide to the Apache License 2.0» на сайте ChooseALicense.com
  • Материалы конференции OSCON 2004 по истории создания лицензии

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

На главную BFOmetr →