GNU General Public License
Шаблон:Карточка свободной лицензии
GNU General Public License (переводят как Универсальная общественная лицензия GNU, Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) — лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 г. Её также сокращённо называют GNU GPL или даже просто GPL, если из контекста понятно, что речь идёт именно о данной лицензии (существует довольно много других лицензий, содержащих слова «general public license» в названии). Вторая версия этой лицензии была выпущена в 1991 году, третья версия, после многолетней работы и длительной дискуссии — в 2007 году. GNU Lesser General Public License (LGPL) — это ослабленная версия GPL, предназначенная для некоторых библиотек ПО. GNU Affero General Public License — это усиленная версия GPL для программ, предназначенных для доступа к ним через сеть<ref name="agpl3rel">Шаблон:Cite web</ref>.
Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы (что по умолчанию запрещено законом об авторских правах), а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права<ref group="Прим.">Пример гарантий: запрещается создавать на основе свободной программы под GPL другой проект, не предоставляя его исходники пользователям. Таким образом, данная лицензия вовсе не позволяет делать с программами «что угодно», как могут ошибочно трактовать данную лицензию плохо знакомые с ней.</ref>. Принцип «наследования» прав называется «копилефт» (транслитерация c Шаблон:Lang-en) и был придуман Ричардом Столлманом. По контрасту с GPL, лицензии проприетарного ПО «очень редко дают пользователю такие права и обычно, наоборот, стремятся их ограничить, например, запрещая восстановление исходного кода»<ref>Шаблон:Cite web</ref>.
Лицензируя работу на условиях GNU GPL, автор сохраняет за собой авторство<ref group="Прим.">Имена авторов обычно указываются в исходном коде или документации (например, файле AUTHORS).</ref>.
Свободы и обязательства
GPL предоставляет получателям компьютерных программ следующие права, или «свободы»<ref>Шаблон:Книга</ref>:
- свободу запуска программы с любой целью;
- свободу изучения того, как программа работает, и её модификации (предварительным условием для этого является доступ к исходному коду);
- свободу распространения копий как исходного, так и исполняемого кода;
- свободу улучшения программы, и выпуска улучшений в публичный доступ (предварительным условием для этого является доступ к исходному коду).
В общем случае распространитель программы, полученной на условиях GPL, либо программы, основанной на таковой, обязан предоставить получателю возможность получить соответствующий исходный код.
История
GPL была написана Ричардом Столлмэном для использования с программами как часть проекта GNU. Она базируется на сходных лицензиях, использовавшихся для ранних версий GNU Emacs, GDB (отладчика GNU) и Коллекции компиляторов GNU (GCC), унифицирует и обобщает их.
GPL v1
Лицензии-прототипы содержали части, подобные частям GPL, но были специфичными для каждой программы. Целью Столлмэна являлось создание единой лицензии, которая могла бы использоваться для любого проекта, делая таким образом возможным совместное использование кода различными программами. Такой лицензией и стала первая версия GNU GPL, выпущенная в январе 1989 года.
GPL v2
В 1990 году стало очевидным, что требуется менее ограничивающая лицензия, которая могла бы использоваться для некоторых библиотек ПО; когда версия 2 GPL была выпущена в июне 1991 года, вместе с ней была введена в обращение GNU Library General Public License (GNU LGPL, LGPL), также получившая номер 2, для обозначения того, что эти две лицензии являются взаимодополняющими. Номера версий разошлись в 1999 году, когда была выпущена LGPL версии 2.1, которая была переименована в Lesser General Public License для уточнения её местоположения в философии GNU.
GPL v3
В 2005 году Эбен Моглен и Ричард Столлмэн написали черновик третьей версии GPL. В разгоревшейся затем 7 апреля 2005 года в Филадельфии дискуссии Столлмэн сделал несколько заявлений, касающихся патентов на ПО и DRM.
В 2006 году Фонд свободного программного обеспечения начал двенадцатимесячную консультацию о возможных изменениях в GPL. Этот процесс координировался самим Фондом свободного ПО, Правовым центром свободы ПО и Европейским фондом свободного ПО. Целью консультаций являлось создание новой версии лицензии с учётом рекомендаций и опыта всех заинтересованных сторон, но с сохранением приверженности принципам свободного ПО.
Первый черновик был опубликован 16 января 2006 года.
Компании, распространяющие GPLv3-ПО, не могут предъявлять к пользователям GPLv3-продуктов судебные претензии касательно обхода распространяемыми версиями продуктов ТСЗАП и нарушения ими же патентов распространителей. Также запрещена тивоизация.
Окончательная версия GPLv3 была опубликована 29 июня 2007 года.
19 ноября 2007 года была выпущена GNU Affero General Public License v3 — GPLv3 с изменениями на основе Affero General Public License v1, выпущенной в 2002 году Affero Inc. на основе GNU GPLv2. Данная лицензия добавляет возможность получения исходного кода пользователям программы, взаимодействующим с ней только через сеть<ref name="agpl3rel" />.
Схема GNU GPL
Текст GNU GPL состоит из нескольких пронумерованных разделов. Ниже приведена схема версии 2.0 лицензии. Эта схема не имеет никакой юридической силы и служит только для краткого ознакомления.
- Определения
- (первый абзац) Определение термина «программа»
- (второй абзац) Область действия лицензии
- Право на копирование и распространение
- Изменение программы
- (первый абзац) Право на изменения при соблюдении следующих условий:
- a) добавление информации об изменении в модифицированных файлах;
- b) лицензирование модифицированных версий на условиях GNU GPL;
- c) условное требование интерактивного вывода информации об авторских правах и отсутствии гарантии.
- (абзацы 2—4) Уточнение термина «производная работа»
- (первый абзац) Право на изменения при соблюдении следующих условий:
- Требование предоставления исходного кода
- (первый абзац) Возможные варианты распространения исполнимого кода:
- a) распространение вместе с исходным кодом, или
- b) распространение с гарантией предоставления исходного кода, или
- c) (для некоммерческого использования) распространение вместе с такой гарантией, полученной от третьего лица.
- (второй абзац) Определение термина «исходный код»
- (третий абзац) Достаточность одинакового доступа для копирования исполнимого и исходного кодов
- (первый абзац) Возможные варианты распространения исполнимого кода:
- Прекращение действия лицензии при нарушении её условий
- Акты, означающие принятие лицензии
- Запрещение дополнительных ограничений при дальнейшем распространении
- Внешние ограничения не снимают обязательства выполнять условия лицензии
- Возможность географических ограничений
- Будущие версии GNU GPL
- Запросы на исключения из правил
- Отказ от предоставления гарантий
- Отказ от ответственности
Совместимость
Использование копилефта накладывает определённые ограничения на объединение работ под GPL и другими свободными (в первую очередь, копилефтными) лицензиями в производных работах.
GPLv2 несовместима с лицензиями Mozilla Public License (MPL), Common Development and Distribution License (CDDL), Apache Software License и некоторыми другими.
GPLv3 была сделана совместимой с лицензией Apache, однако с MPL и её производными она несовместима<ref>Шаблон:Cite web</ref>. Работы под MPL часто одновременно лицензируются и под GPL и LGPL (например, код Mozilla Firefox), что частично решает проблему.
Известным примером несовместимости GPL с другой лицензией является невозможность включения файловой системы ZFS, выпущенной Sun Microsystems под CDDL, в ядро Linux, выпущенное под GPLv2.
Любая несвободная лицензия несовместима с GPL.
Сложности
GNU GPL требует распространения с двоичными файлами (в том числе неизменными) исходного кода или письменного обязательства его предоставить (своего или чужого; способы зависят от версии лицензии). Некоторые авторы считают, что это требование непривычно для отдельных пользователей и разработчиков, и не является для них очевидным и понятным<ref>Шаблон:Cite web</ref>.
Иногда у авторов возникают затруднения в выборе лицензии, связанные с тем, что нет общепринятого, применимого во всех случаях, понятия исходного кода для цифровых представлений аналоговых данных: музыкальных записей, видео с видеокамеры, фотографических изображений. Обычно это происходит при использовании сжатия с потерями или многократном преобразовании (например, цифровая запись игры на пианино по нотам или пения).