Лицензия 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 базируется на четырёх фундаментальных свободах, определённых Фондом свободного ПО:
- Свобода 0: запускать программу для любых целей.
- Свобода 1: изучать, как работает программа, и изменять её под свои нужды (доступ к исходному коду обязателен).
- Свобода 2: распространять копии программы, чтобы помочь другим.
- Свобода 3: распространять копии изменённых версий, чтобы всё сообщество могло воспользоваться улучшениями.
Принцип копилефта
Копилефт — ключевая концепция GPL. В отличие от разрешительных лицензий (например, MIT или BSD), которые позволяют включать код в проприетарные проекты, GPL требует, чтобы все производные работы распространялись под той же лицензией. Это гарантирует, что свобода, предоставленная исходной программой, не будет утрачена в последующих версиях. Если разработчик использует код под GPL в своём проекте и распространяет его публично, он обязан предоставить полный исходный код и лицензировать весь проект под GPL.
Условия распространения
Лицензия разрешает распространять программу в исходном или скомпилированном виде, но при этом требуется:
- Предоставить получателю копию лицензии.
- Сделать доступным полный соответствующий исходный код (complete corresponding source code) вместе с исполняемыми файлами.
- Указать все изменения, внесённые в исходный код.
- Не налагать дополнительных ограничений на права, предоставляемые лицензией.
Патентные положения
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.
Юридическая сложность
Текст лицензии объёмный и содержит множество юридических нюансов. Малые проекты и индивидуальные разработчики часто не имеют ресурсов для полного понимания и соблюдения всех условий.
Интересные факты
- Ричард Столлман назвал лицензию «GNU General Public License», чтобы подчеркнуть её универсальность — она предназначена не только для программ проекта GNU.
- GPLv2 стала первой лицензией, которая была признана «свободной» Open Source Initiative (OSI) и Фондом свободного ПО.
- В 2009 году суд США постановил, что GPL является юридически обязывающим контрактом (дело Jacobsen v. Katzer).
- Лицензия GPL переведена на десятки языков, включая русский, но юридическую силу имеет только англоязычная версия.
Источники
- Free Software Foundation. «GNU General Public License». Версии 1, 2, 3.
- Richard Stallman. «Free Software, Free Society: Selected Essays of Richard M. Stallman».
- Lawrence Rosen. «Open Source Licensing: Software Freedom and Intellectual Property Law».
- Open Source Initiative. «The Open Source Definition».
- Debian Project. «Debian Free Software Guidelines».
- Jacobsen v. Katzer, 535 F.3d 1373 (Fed. Cir. 2009).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →