GPL v2
GPL v2 (GNU General Public License version 2, GNU GPL v2) — это свободная лицензия на программное обеспечение, опубликованная Фондом свободного программного обеспечения (Free Software Foundation, FSF) в 1991 году. Она является второй версией самой популярной и влиятельной лицензии на свободное и открытое программное обеспечение, разработанной Ричардом Столлманом в рамках проекта GNU. GPL v2 предоставляет пользователям права на использование, изучение, изменение и распространение программного обеспечения, при условии, что производные работы также распространяются под той же лицензией. Это ключевое условие, известное как «копилефт» (copyleft), отличает GPL от более разрешительных лицензий, таких как MIT или BSD.
История
Предпосылки создания
Первая версия GNU General Public License (GPL v1) была выпущена в 1989 году. Она была разработана для защиты прав пользователей на программное обеспечение, создаваемое в рамках проекта GNU, начатого Ричардом Столлманом в 1983 году. Основной целью было создание операционной системы, полностью состоящей из свободного программного обеспечения, и предотвращение превращения свободных программ в проприетарные.
Разработка и публикация GPL v2
В начале 1990-х годов Столлман и сообщество разработчиков столкнулись с рядом юридических и практических проблем, которые не были полностью решены в GPL v1. Основные из них касались:
- Патентных исков: Возникла необходимость защитить пользователей от судебных преследований со стороны держателей патентов, которые могли бы использовать лицензию для ограничения прав.
- «Тивоизация» (Tivoization): Термин, появившийся позже, но проблема была заложена в возможности производителей аппаратного обеспечения создавать устройства, которые работают на GPL-программах, но блокируют возможность их модификации пользователем.
- Неоднозначность формулировок: Некоторые положения первой версии были недостаточно чёткими, что приводило к спорам о том, как именно следует распространять производные работы.
В 1991 году, после двух лет обсуждений и консультаций с юристами, была опубликована вторая версия лицензии — GPL v2. Она стала значительно более детальной и юридически проработанной. Наиболее важным нововведением стал раздел 7, который позволял лицензиару добавлять ограничения, если они требуются для соблюдения патентного законодательства или других законов, но при этом не мог отменять основные свободы, предоставляемые лицензией.
Распространение и влияние
GPL v2 быстро стала стандартом де-факто для многих ключевых проектов свободного программного обеспечения. Её приняли такие проекты, как ядро Linux (с 1992 года), GNU Compiler Collection (GCC), библиотека glibc, система управления базами данных MySQL, система управления версиями Git, а также множество других. В 2000-х годах GPL v2 использовалась примерно в 60-70% всех проектов с открытым исходным кодом. Она стала основой для бизнес-моделей многих компаний, включая Red Hat, SUSE и Canonical, которые строили свой бизнес на распространении и поддержке GPL-программ.
Переход к GPL v3
В 2007 году, после многолетних обсуждений, была опубликована третья версия лицензии (GPL v3). Она была призвана решить проблемы, связанные с «тивоизацией», патентными соглашениями и совместимостью с другими лицензиями. Однако многие крупные проекты, в первую очередь ядро Linux, отказались от перехода на GPL v3, сославшись на то, что GPL v2 полностью удовлетворяет их потребностям и не требует изменений. В результате GPL v2 остаётся одной из самых распространённых лицензий, особенно для инфраструктурного и системного программного обеспечения.
Основные положения
Ключевые свободы
GPL v2 предоставляет пользователю четыре фундаментальные свободы:
- Свобода 0: Запускать программу для любых целей.
- Свобода 1: Изучать, как работает программа, и изменять её (для этого необходим доступ к исходному коду).
- Свобода 2: Распространять копии программы, чтобы помочь другим.
- Свобода 3: Распространять копии изменённых версий программы другим.
Механизм копилефта
Главное отличие GPL v2 от разрешительных лицензий — это условие копилефта. Оно гласит: если вы распространяете (продаёте или отдаёте бесплатно) программу, лицензированную по GPL v2, или производную работу на её основе, вы обязаны предоставить получателю полный исходный код всей программы и распространять её под той же лицензией GPL v2. Это гарантирует, что все последующие версии и производные работы останутся свободными.
Обязанности при распространении
При распространении GPL-программы (в том числе в составе коммерческого продукта) необходимо выполнить следующие условия:
- Предоставить исходный код: Получателю должен быть доступен полный исходный код программы, из которого можно собрать исполняемый файл.
- Сохранить уведомления об авторских правах: Все уведомления об авторских правах и лицензионные уведомления должны быть сохранены.
- Приложить текст лицензии: Копия GPL v2 должна быть приложена к программе или доступна вместе с ней.
- Не налагать дополнительных ограничений: Запрещается добавлять к программе какие-либо условия, которые ограничивают права, предоставленные GPL v2.
Патентная защита (Раздел 7)
Раздел 7 GPL v2 содержит важное положение, касающееся патентов. Если вы распространяете программу, и на неё распространяется действие патента, который вы контролируете, вы обязаны предоставить каждому получателю лицензию на использование этого патента в рамках программы. Если вы не можете этого сделать (например, из-за лицензионного соглашения с третьей стороной), вы не можете распространять программу вообще. Этот раздел был разработан для предотвращения использования патентов для блокировки свободного распространения.
Критика и ограничения
«Тивоизация»
Одним из самых серьёзных недостатков GPL v2, который был устранён в GPL v3, является уязвимость к «тивоизации». Это явление, названное по имени компании TiVo, которая использовала GPL-программы (в частности, ядро Linux) в своих цифровых видеорегистраторах. TiVo предоставляла исходный код, как того требует лицензия, но аппаратное обеспечение было настроено так, что принимало только подписанные цифровой подписью версии прошивки. Это делало невозможным для пользователя загрузить модифицированную версию программы на устройство, что фактически лишало его свободы 1 (изменять программу) и свободы 3 (распространять изменённые версии). В GPL v2 не было явного запрета на такие действия, что и стало предметом критики.
Несовместимость с другими лицензиями
GPL v2 несовместима с рядом других популярных свободных лицензий, в частности с Apache License 2.0. Это означает, что нельзя взять код, лицензированный под Apache 2.0, и включить его в проект, распространяемый под GPL v2, и наоборот. Это создаёт практические трудности при объединении кода из разных проектов. Проблема частично решается в GPL v3, которая совместима с Apache 2.0.
Сложность для бизнеса
Для коммерческих компаний, использующих GPL v2 в своих продуктах, существуют определённые риски. Если компания разрабатывает проприетарное программное обеспечение, которое использует GPL-библиотеку, и если это использование трактуется как создание производной работы, то всё проприетарное ПО должно быть открыто под GPL. Это часто называют «вирусным эффектом» GPL, что может быть неприемлемо для бизнес-моделей, основанных на закрытом коде. Однако существуют способы легального использования GPL-кода, например, через разделение процессов (IPC) или использование библиотек с исключением (GPL linking exception).
Применение
Ядро Linux
Самым известным и масштабным проектом, использующим GPL v2, является ядро Linux. Линус Торвальдс, создатель ядра, принял решение лицензировать его под GPL v2 в 1992 году. Это решение сыграло решающую роль в успехе Linux, так как позволило тысячам разработчиков по всему миру вносить свой вклад в проект, а компаниям — строить на его основе коммерческие продукты. Торвальдс неоднократно заявлял, что не видит причин для перехода на GPL v3, и ядро Linux остаётся под GPL v2.
Другие известные проекты
Помимо ядра Linux, GPL v2 используется в следующих ключевых проектах:
- GNU Compiler Collection (GCC): Один из основных компиляторов для языков C, C++, Fortran и других.
- GNU C Library (glibc): Основная библиотека языка C для большинства Linux-систем.
- MySQL: Популярная система управления реляционными базами данных (до перехода на двойное лицензирование, часть кода остаётся под GPL).
- Git: Распределённая система управления версиями, созданная Линусом Торвальдсом.
- WordPress: Система управления контентом (CMS), используемая для создания веб-сайтов.
- Wireshark: Сетевой анализатор трафика.
Интересные факты
- Название «GPL»: Аббревиатура расшифровывается как «GNU General Public License». Первое слово «GNU» — это рекурсивный акроним, означающий «GNU’s Not Unix».
- Юридическая сила: GPL v2 была признана юридически обоснованной в ряде судебных процессов, в том числе в США и Германии. В 2004 году суд Мюнхена (Германия) вынес решение в пользу Фонда свободного программного обеспечения против компании Sitecom, которая нарушала условия GPL v2, распространяя программное обеспечение без предоставления исходного кода.
- «Copyleft»: Термин «copyleft» был придуман Ричардом Столлманом как игра слов, противопоставляющаяся «copyright» (авторское право). Вместо того чтобы ограничивать распространение, копилефт использует авторское право для обеспечения того, чтобы каждый получатель программы имел те же права, что и первоначальный автор.
- Влияние на законодательство: GPL v2 стала образцом для многих других свободных и открытых лицензий, а также повлияла на развитие концепции «открытого исходного кода» (open source) и «свободного программного обеспечения» (free software). Она является одним из краеугольных камней современной цифровой экономики.
Источники
- Free Software Foundation. GNU General Public License, version 2.
- Stallman, R. (2002). Free Software, Free Society: Selected Essays of Richard M. Stallman. GNU Press.
- Rosen, L. (2004). Open Source Licensing: Software Freedom and Intellectual Property Law. Prentice Hall.
- Moglen, E. (2008). Free Software Matters: Selected Writings of Eben Moglen. Lulu.com.
- История проекта GNU. Официальный сайт GNU.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →