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

Стандартная общественная лицензия GNU

Стандартная общественная лицензия GNU (GNU General Public License, GNU GPL) — это свободная лицензия на программное обеспечение, разработанная в рамках проекта GNU. Она предоставляет пользователям права на использование, копирование, распространение, изучение и изменение программного обеспечения, при условии, что все производные работы также распространяются на условиях GPL. Лицензия является одним из ключевых инструментов движения за свободное программное обеспечение (Free Software Foundation, FSF) и считается «копилефтной» (copyleft), так как требует сохранения тех же свобод для всех последующих версий программы.

История

Предпосылки создания

В начале 1980-х годов Ричард Столлмен, работавший в Массачусетском технологическом институте (MIT), столкнулся с проблемой закрытия исходного кода в коммерческом программном обеспечении. В 1984 году он основал проект GNU (GNU’s Not Unix) с целью создания полностью свободной операционной системы. Для защиты прав пользователей и предотвращения присвоения свободного кода проприетарными разработчиками потребовалась юридическая основа.

Первая версия (GPLv1)

Первая версия GNU GPL (GPLv1) была опубликована 25 февраля 1989 года. Она ввела понятие «копилефта» — механизма, который использует авторское право для обеспечения свобод, а не ограничений. Основные положения включали:

  • Право на копирование и распространение программы.
  • Обязательство распространять исходный код вместе с исполняемыми файлами.
  • Запрет на добавление дополнительных ограничений, не предусмотренных лицензией.

Вторая версия (GPLv2)

GPLv2 была выпущена в июне 1991 года. Она уточнила формулировки, касающиеся распространения, и добавила раздел о «тивоизации» (tivoization) — практике, при которой производители аппаратного обеспечения блокируют возможность установки модифицированных версий программного обеспечения. GPLv2 стала самой распространённой версией лицензии; под ней выпущены ядро Linux, GCC, Emacs и многие другие проекты.

Третья версия (GPLv3)

GPLv3 была опубликована 29 июня 2007 года после длительного обсуждения (процесс занял около 18 месяцев). Основные изменения:

  • Усиление защиты от «тивоизации» (статья 11).
  • Уточнение правил распространения через интернет (например, требование предоставлять исходный код при распространении через веб-сервисы — «условие ASP»).
  • Механизм совместимости с другими лицензиями (например, Apache 2.0).
  • Защита от патентных исков (статья 11).

GPLv3 вызвала споры: некоторые проекты (например, ядро Linux) остались на GPLv2, в то время как другие (GCC, Samba) перешли на GPLv3.

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

Копилефт

Ключевой принцип GPL — копилефт (copyleft). Он означает, что любое производное произведение (модификация, расширение, включение в другой проект) должно распространяться на тех же условиях, что и оригинал. Это предотвращает превращение свободного кода в проприетарный.

Четыре свободы

GPL гарантирует четыре фундаментальные свободы (по определению FSF):

  1. Свобода 0: запускать программу в любых целях.
  2. Свобода 1: изучать и изменять исходный код.
  3. Свобода 2: распространять копии программы.
  4. Свобода 3: распространять модифицированные версии.

Обязательства при распространении

При распространении программы (в том числе через интернет) необходимо:

  • Предоставлять полный исходный код.
  • Сохранять уведомления об авторских правах.
  • Указывать, что программа распространяется по GPL.
  • Прилагать текст лицензии.

Отсутствие гарантий

GPL содержит отказ от гарантий (disclaimer of warranty). Программа предоставляется «как есть», без каких-либо обязательств со стороны авторов.

Классификация и совместимость

Версии

  • GPLv1: историческая версия, практически не используется.
  • GPLv2: наиболее распространённая, под ней выпущено ядро Linux.
  • GPLv3: современная версия с усиленной защитой, совместима с Apache 2.0, но несовместима с GPLv2 (проект, объединяющий код под GPLv2 и GPLv3, может нарушать условия обеих лицензий).

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

GPLv2 совместима с рядом лицензий (например, MIT, BSD 2-Clause), но несовместима с GPLv3. GPLv3 совместима с Apache 2.0, GNU Affero GPLv3, но несовместима с GPLv2. Для комбинирования кода под разными лицензиями требуется проверка совместимости.

Связанные лицензии

  • GNU Lesser General Public License (LGPL): более мягкая версия GPL, позволяющая использование библиотек в проприетарном ПО.
  • GNU Affero General Public License (AGPL): версия GPL, требующая предоставления исходного кода даже при использовании программы через сеть (например, веб-сервисы).

Применение

Ядро Linux

Ядро Linux (созданное Линусом Торвальдсом в 1991 году) распространяется под GPLv2. Это один из самых известных примеров использования лицензии. Разработчики ядра намеренно не перешли на GPLv3 из-за разногласий по поводу «тивоизации» и других положений.

Инструменты GNU

Большинство инструментов проекта GNU (компилятор GCC, отладчик GDB, текстовый редактор Emacs, утилиты coreutils) распространяются под GPLv3 или GPLv2.

Другие проекты

  • WordPress: распространяется под GPLv2.
  • MySQL: до приобретения Oracle — под GPLv2.
  • Blender: 3D-редактор под GPLv2.
  • VLC media player: под GPLv2.

Критика и споры

«Тивоизация»

Термин возник после того, как компания TiVo использовала GPLv2-код в своих устройствах, но блокировала установку модифицированных версий. GPLv3 была направлена на предотвращение этой практики, что вызвало критику со стороны некоторых производителей.

Совместимость с бизнес-моделями

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

Судебные споры

Нарушения GPL неоднократно становились предметом судебных разбирательств. Например, в 2008 году Фонд свободного ПО подал иск против Cisco за нарушение GPL в продуктах Linksys. В 2019 году суд США подтвердил, что GPL является юридически обязывающим контрактом.

Интересные факты

  • Термин «копилефт» (copyleft) — игра слов: «copyright» (авторское право) и «left» (левый, перевёрнутый).
  • GPL — одна из первых лицензий, явно запрещающих добавление дополнительных ограничений.
  • В 2021 году Фонд свободного ПО выпустил GPLv3 FAQ, разъясняющий многие спорные моменты.

Источники

  • Free Software Foundation. GNU General Public License, version 3. — 2007.
  • Free Software Foundation. GNU General Public License, version 2. — 1991.
  • Richard Stallman. Free Software, Free Society: Selected Essays of Richard M. Stallman. — 2002.
  • Lawrence Rosen. Open Source Licensing: Software Freedom and Intellectual Property Law. — 2004.
  • GNU Project. Frequently Asked Questions about the GNU GPL. — 2021.

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

На главную BFOmetr →