Стандартная общественная лицензия 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):
- Свобода 0: запускать программу в любых целях.
- Свобода 1: изучать и изменять исходный код.
- Свобода 2: распространять копии программы.
- Свобода 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 →