Лицензия GNU General Public License
Лицензия GNU General Public License (GNU GPL, GNU Общая публичная лицензия) — это широко используемая лицензия на свободное и открытое программное обеспечение, разработанная Фондом свободного программного обеспечения (Free Software Foundation, FSF). Основная цель GNU GPL — гарантировать пользователям свободу запуска, изучения, изменения и распространения копий программ, а также обеспечить, чтобы производные работы оставались свободными и распространялись на тех же условиях (принцип «копилефт»). GNU GPL является одной из самых влиятельных лицензий в мире свободного ПО, наряду с лицензиями BSD, MIT и Apache.
История
Предпосылки создания
В начале 1980-х годов в сообществе разработчиков программного обеспечения начали набирать силу тенденции к закрытию исходного кода и коммерциализации ПО. В ответ на это Ричард Столмен, программист из Массачусетского технологического института (MIT), основал в 1983 году проект GNU (рекурсивный акроним от «GNU’s Not Unix»). Целью проекта было создание полностью свободной операционной системы, совместимой с Unix. Для юридического оформления принципов свободного распространения ПО Столмен разработал первую версию GNU General Public License.
Версия 1 (GPLv1)
Первая версия лицензии была опубликована в феврале 1989 года. Она вводила два ключевых понятия: «копилефт» (copyleft) — требование, чтобы производные работы распространялись под той же лицензией, и запрет на добавление дополнительных ограничений, которые могли бы лишить пользователя прав, предоставленных лицензией. GPLv1 также содержала положения о распространении исходного кода вместе с исполняемыми файлами.
Версия 2 (GPLv2)
В июне 1991 года вышла вторая версия лицензии (GPLv2). Она уточнила формулировки, касающиеся распространения и модификации, а также ввела статью 7, которая позволяла лицензиату отказываться от распространения, если на него накладываются дополнительные обязательства (например, по патентному праву), противоречащие условиям GPL. GPLv2 стала самой распространённой версией; под ней распространяются ядро Linux, большая часть утилит GNU, а также множество других проектов.
Версия 3 (GPLv3)
Третья версия (GPLv3) была опубликована 29 июня 2007 года после длительного процесса обсуждения, длившегося около 18 месяцев. Основные изменения касались:
- Патентов: явное предоставление патентных лицензий на вклад каждого участника.
- Управления цифровыми правами (DRM): лицензия запрещает использование GPL-программ в устройствах, которые ограничивают пользователя в модификации ПО (например, в смартфонах с заблокированным загрузчиком).
- Тивоизации: запрет на распространение модифицированных версий ПО на устройствах, которые не позволяют пользователю устанавливать собственные версии (например, в некоторых бытовых приборах).
- Совместимости: улучшена совместимость с другими лицензиями, включая Apache License 2.0.
Несмотря на выход GPLv3, многие крупные проекты (включая ядро Linux) остались на GPLv2, что привело к сосуществованию обеих версий.
Основные принципы и термины
Четыре свободы
GNU GPL базируется на четырёх свободах, определённых Фондом свободного программного обеспечения:
- Свобода 0: запускать программу для любых целей.
- Свобода 1: изучать и модифицировать исходный код программы.
- Свобода 2: распространять копии программы.
- Свобода 3: распространять модифицированные версии программы.
Копилефт
Ключевое отличие GPL от пермиссивных лицензий (например, MIT или BSD) — принцип копилефта. Он требует, чтобы любая производная работа (то есть программа, основанная на GPL-коде) распространялась под той же лицензией GPL. Это предотвращает превращение свободного кода в проприетарное ПО.
Обязанности при распространении
При распространении программы под GPL (в том числе в составе коммерческого продукта) необходимо:
- Предоставить получателю полный соответствующий исходный код.
- Приложить копию лицензии.
- Указать авторство и изменения.
- Не накладывать на получателя дополнительных ограничений, помимо тех, что указаны в GPL.
Типы лицензий семейства GNU
GNU General Public License (GPL)
Основная лицензия, предназначенная для большинства программ. Существует в версиях 2 и 3.
GNU Lesser General Public License (LGPL)
Облегчённая версия GPL, предназначенная для библиотек. Позволяет связывать LGPL-библиотеку с проприетарным кодом без требования лицензировать весь код под GPL. LGPLv3 была выпущена вместе с GPLv3.
GNU Affero General Public License (AGPL)
Версия GPL, дополненная требованием предоставлять исходный код пользователям, которые взаимодействуют с программой через сеть (например, через веб-интерфейс). AGPLv3 вышла в 2007 году и часто используется для веб-приложений.
Применение
Операционная система GNU/Linux
Ядро Linux и большинство утилит GNU (компилятор GCC, библиотека glibc, текстовый редактор Emacs) распространяются под GPLv2. Это делает GPL основной лицензией для всей экосистемы GNU/Linux.
Другие известные проекты
- MySQL: база данных, распространявшаяся под GPLv2 (с 2018 года — под GPLv2 с дополнительными условиями).
- WordPress: система управления контентом (CMS) под GPLv2.
- Blender: программа для 3D-моделирования под GPLv2 или GPLv3.
- GIMP: графический редактор под GPLv3.
- VLC media player: мультимедийный проигрыватель под GPLv2.
Коммерческое использование
GPL не запрещает коммерческое распространение программ. Разработчики могут продавать копии GPL-программ, но обязаны предоставлять исходный код и не могут ограничивать права получателя. Многие компании (например, Red Hat, SUSE) строят бизнес на поддержке и распространении GPL-программ.
Критика и ограничения
Совместимость с другими лицензиями
GPLv2 несовместима с некоторыми другими свободными лицензиями, например, с Apache License 2.0. Это означает, что код под GPLv2 нельзя объединять с кодом под Apache 2.0 без нарушения условий одной из лицензий. GPLv3 частично решила эту проблему, но совместимость с GPLv2 остаётся односторонней.
Тивоизация
Термин, введённый Столменом, обозначает практику, когда производитель устройств (например, смартфонов или роутеров) использует GPL-программы, но не позволяет пользователю устанавливать модифицированные версии из-за аппаратных ограничений. GPLv3 была направлена на борьбу с этим явлением.
Патентные риски
GPLv2 не содержит явного предоставления патентных лицензий, что может создавать неопределённость для вкладчиков. GPLv3 устранила этот недостаток, включив явную патентную лицензию.
Сложность соблюдения
Для крупных проектов, использующих множество сторонних библиотек, соблюдение условий GPL может быть сложным. Необходимо отслеживать происхождение каждого фрагмента кода и обеспечивать совместимость лицензий.
Правовой статус в России
В Российской Федерации лицензия GNU GPL признаётся как лицензионный договор, регулируемый Гражданским кодексом РФ (часть четвёртая). Судебная практика по спорам, связанным с GPL, ограничена, однако в 2019 году Арбитражный суд города Москвы в деле № А40-3174/2019 признал нарушение условий GPLv2 (использование кода без предоставления исходного текста) нарушением авторских прав. В целом, российское законодательство допускает использование свободных лицензий, включая GPL, при условии их соответствия нормам ГК РФ.
Источники
- Free Software Foundation. GNU General Public License, version 2 (1991).
- Free Software Foundation. GNU General Public License, version 3 (2007).
- Столмен Р. «Свободное программное обеспечение» (сборник эссе).
- Гражданский кодекс Российской Федерации, часть четвёртая (статьи 1225–1551).
- Решение Арбитражного суда г. Москвы от 15.05.2019 по делу № А40-3174/2019.
- «Open Source Licensing: Software Freedom and Intellectual Property Law» by Lawrence Rosen (2004).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →