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

Лицензия GNU GPL

GNU GPL (GNU General Public License, GNU Универсальная общественная лицензия) — это широко распространённая лицензия на свободное и открытое программное обеспечение, разработанная Фондом свободного программного обеспечения (FSF). Она предоставляет пользователям права на запуск, изучение, изменение и распространение копий программы, а также её модифицированных версий, при условии, что производные работы распространяются на тех же лицензионных условиях. GNU GPL является одной из самых строгих лицензий, реализующих принцип копилефта (copyleft), и служит основным инструментом для защиты свободы программного обеспечения в экосистеме проекта GNU.

История

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

В начале 1980-х годов Ричард Столлман, работая в Лаборатории искусственного интеллекта Массачусетского технологического института (MIT), столкнулся с проблемой закрытия исходного кода коммерческими производителями. Программное обеспечение, ранее свободно распространявшееся в академической среде, стало превращаться в проприетарные продукты, что ограничивало возможности пользователей. В ответ на это в 1983 году Столлман объявил о начале проекта GNU — операционной системы, полностью состоящей из свободного ПО. Для юридического оформления свободного распространения программ потребовалась лицензия, которая бы гарантировала сохранение свободы в производных работах.

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

Первая версия GNU GPL была опубликована в феврале 1989 года. Она закрепляла четыре фундаментальные свободы: запуск программы для любых целей, изучение и изменение исходного кода, распространение копий, а также распространение изменённых версий. Ключевым нововведением стало условие копилефта: любая производная работа, распространяемая публично, должна лицензироваться на тех же условиях. Это предотвращало превращение свободного кода в проприетарный.

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

В 1991 году вышла вторая версия лицензии (GPLv2), которая стала наиболее используемой. Основные изменения коснулись уточнения формулировок и добавления раздела, касающегося патентных исков. GPLv2 содержит пункт, известный как «Liberty or Death» (свобода или смерть): если на дистрибьютора налагаются судебные ограничения, препятствующие распространению программы в соответствии с условиями GPL, он не может распространять её вовсе. Эта версия лицензии использовалась для ядра Linux, компилятора GCC и тысяч других проектов.

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

После длительного обсуждения, начавшегося в 2005 году, в июне 2007 года была опубликована третья версия лицензии (GPLv3). Основные цели ревизии включали борьбу с тивоизацией (tivoization) — практикой, когда производители аппаратного обеспечения блокируют установку модифицированных версий свободного ПО на устройствах, а также урегулирование вопросов, связанных с патентами и цифровыми ограничениями (DRM). GPLv3 явно запрещает использование лицензированного ПО для создания систем, ограничивающих свободу пользователей, и содержит более детальные положения о патентной защите. Несмотря на это, многие крупные проекты, включая ядро Linux, остались на GPLv2, что привело к фрагментации сообщества.

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

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

GNU GPL базируется на четырёх фундаментальных свободах, определённых Фондом свободного ПО:

Принцип копилефта

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

Условия распространения

Лицензия разрешает распространять программу в исходном или скомпилированном виде, но при этом требуется:

Патентные положения

GPLv3 включает явный патентный грант: каждый участник, распространяющий программу, автоматически предоставляет лицензию на свои патенты, которые необходимы для использования, модификации или распространения программы. Это защищает пользователей от патентных исков со стороны контрибьюторов. GPLv2 не содержит такого явного гранта, но судебная практика и доктрина подразумевают его через общие принципы.

Различия между версиями

ХарактеристикаGPLv1 (1989)GPLv2 (1991)GPLv3 (2007)
КопилефтДаДаДа
Борьба с тивоизациейНетНетДа
Патентный грантНетКосвенноЯвный
Совместимость с AGPLНетНетДа (с оговорками)
Ограничения DRMНетНетДа
Положения о совместимостиМинимальныеУмеренныеРасширенные

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

GNU GPL несовместима с большинством проприетарных лицензий, а также с некоторыми свободными, если они не позволяют накладывать дополнительные ограничения. Например, код под лицензией Apache 2.0 можно включать в проекты под GPLv3, но не под GPLv2. Лицензия MIT и BSD (2- и 3-пунктная) совместимы с GPL, так как они разрешают перелицензирование. Однако лицензия MPL (Mozilla Public License) совместима только с GPLv3 при соблюдении определённых условий. Полный список совместимости поддерживается Фондом свободного ПО.

Применение

Операционные системы

Ядро Linux, один из самых известных проектов, лицензировано под GPLv2. Это обеспечило его широкое распространение и развитие сообществом. Многие дистрибутивы GNU/Linux (например, Debian, Fedora, Ubuntu) включают тысячи программ под GPL.

Инструменты разработки

Компилятор GCC, отладчик GDB, система сборки GNU Make и другие инструменты GNU распространяются под GPL. Это сделало их стандартом в индустрии.

Прикладное ПО

Под GPL выпускаются такие программы, как графический редактор GIMP, офисный пакет LibreOffice, система управления базами данных MySQL (двойная лицензия), медиаплеер VLC и многие другие.

Встраиваемые системы

GPLv3 активно используется в проектах, требующих защиты от тивоизации, например, в маршрутизаторах с OpenWrt или в медиацентрах на базе Kodi.

Критика и ограничения

Вирусный эффект

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

Несовместимость с некоторыми проектами

Из-за строгих требований GPL не может быть использована в проектах, которые хотят сохранить проприетарность отдельных компонентов. Это привело к созданию альтернатив, таких как LGPL (Lesser GPL) для библиотек.

Фрагментация сообщества

Разделение на GPLv2 и GPLv3 создало ситуацию, когда проекты, использующие разные версии, не могут объединять код. Например, ядро Linux остаётся на GPLv2, что ограничивает его совместимость с новыми проектами на GPLv3.

Юридическая сложность

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

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

Источники

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

На главную BFOmetr →