Это перевод страницы, написанной на английском языке.

Ответы на вопросы о версии 2 GNU GPL

Эта страница содержит ответы на обычно задаваемые вопросы о версии 2 Стандартной общественной лицензии (GPL) GNU. Список для текущей версии GPL находится на другой странице. За более подробными сведениями о других лицензиях Фонда свободного программного обеспечения обращайтесь, пожалуйста, к нашей странице лицензий.

После чтения этого списка вы можете проверить свое знание лицензирования свободных программ с помощью нашего опросника.

Содержание


Простые вопросы о GPL, проекте GNU и Фонде свободного программного обеспечения

Общее понимание GPL

Применение GPL в ваших программах

Распространение программ, выпущенных под GPL

Использование программ, выпущенных на условиях GPL, при написании других программ

Комбинирование работы с текстами, выпущенными на условиях GPL

Вопросы о нарушениях GPL


Как расшифровывается “GPL”?
“GPL” расшифровывается как “General Public License” (“Стандартная общественная лицензия”). Наиболее широко из таких лицензий распространена Стандартная общественная лицензия GNU, коротко обозначаемая как “GNU GPL”. Это выражение можно дальше сократить до “GPL”, когда ясно, что имеется в виду именно GNU GPL.
Подразумевает ли выражение “свободная программа” применение GPL?
Вовсе нет — есть много других лицензий свободных программ. У нас есть неполный список. Любая лицензия, которая предоставляет пользователю определенные особые свободы, является лицензией свободных программ.
Почему мне следует применять GNU GPL, а не другие лицензии свободных программ?
GNU GPL требует, чтобы все выпущенные улучшенные версии были свободными программами. Это значит, что вы избегаете риска необходимости конкурировать с несвободной измененной версией вашей собственной работы. Однако в некоторых особых ситуациях может быть лучше пользоваться более либеральной лицензией.
Все ли программы GNU используют в качестве лицензии GNU GPL?
Большинство пакетов программ GNU используют GNU GPL, но есть несколько программ GNU (и частей программ), которые пользуются менее слабыми лицензиями, такими, как Меньшая GPL. Когда мы так поступаем, это вопрос стратегии.
Если для программы применяется GPL, то делает ли это ее программой GNU?
Кто угодно может выпустить программу под GNU GPL, но это не делает ее пакетом GNU.

Сделать программу пакетом GNU значит сделать вклад в проект GNU явным образом. Это происходит, когда разработчики программы и проект GNU дают на это согласие. Если вы заинтересованы в добавлении программы в проект GNU, напишите, пожалуйста, по адресу: <maintainers@gnu.org>.

Что мне следует делать, если я обнаруживаю возможное нарушение GPL?
Вам следует прислать отчет об этом. Сперва как можно тщательнее проверьте факты. Затем расскажите правообладателю или тому, кто опубликовал конкретную программу по GPL. Если это Фонд свободного программного обеспечения, напишите по адресу: <license-violation@gnu.org>. В противном случае тот, кто поддерживает программу, может быть правообладателем или знать, как с ним связаться, так что пришлите отчет тому, кто поддерживает программу.
Почему GPL разрешает пользователям публиковать свои измененные версии?
Принципиально важный аспект свободных программ состоит в том, что у их пользователей есть свобода сотрудничества. Это разрешение совершенно необходимо для пользователей, которые желают помогать друг другу делиться своими исправлениями ошибок и улучшениями с другими пользователями.

Некоторые предлагали альтернативы GPL, которые требуют, чтобы измененные версии проходили через первоначального автора. Пока первоначальный автор удовлетворительно поддерживает программу, это может хорошо работать на практике, но если автор прекращает (более или менее) делать что-то другое или не удовлетворяет всех нужд пользователей, в этой схеме происходит сбой. Кроме практических проблем, эта схема не позволяет пользователям помогать друг другу.

Иногда предлагают контролировать измененные версии для предотвращения путаницы среди различных версий, созданных пользователями. По нашему опыту эта путаница серьезной проблемы не представляет. Вне проекта GNU создано множество версий Emacs, но пользователи их различают. GPL требует, чтобы создатель версии ставил на ней свое имя, чтобы отличить ее от других версий и для предохранения репутации других разработчиков.

Требует ли GPL, чтобы исходный текст измененных версий выставлялся на всеобщее обозрение?
GPL не требует от вас выпуска измененной версии. Вы вольны вносить изменения и применять их в личных целях безо всякого выпуска их. Это относится и к организациям (включая коммерческие); организация может создать модифицированную версию и применять ее внутри безо всякого выпуска ее за пределы организации.

Но если вы как-то выпускаете измененную версию в свет, то GPL требует, чтобы вы сделали измененный исходный текст доступным пользователям программы на условиях GPL.

Итак, GPL дает разрешение выпускать измененную программу не иначе, как определенными способами; но вы вполне можете решать, выпускать ее или нет.

Может у меня быть программа под GPL и не связанная с ней несвободная программа на одном и том же компьютере?
Да. Пункт GPL о “простом размещении” делает это разрешение явным, но это только подтверждает то, что, по нашему убеждению, было бы верно в любом случае.
Если я знаю, что у кого-то есть копия программы под GPL, могу ли я требовать, чтобы он дал мне копию?
Нет. GPL дает ему разрешение создавать и распространять копии программы, если он решит это делать. У него есть также право не распространять программу, если таково его решение.
Что означает в GPL версии 2 “письменное предложение, действительное для любой третьей стороны”? Значит ли это, что все на свете могут получить исходный текст любой программы под GPL, все равно, какой именно?

Если вы решили предоставлять исходный текст по письменному предложению, то любой, кто потребует от вас исходный текст, имеет право его получить.

Если вы коммерчески распространяете двоичные файлы, не сопровождаемые исходным текстом, то согласно GPL вы должны предоставить письменное предложение поставить исходный текст впоследствии. Когда пользователи некоммерчески распространяют полученные от вас двоичные файлы, они должны передать копию письменного предложения. Это значит, что те, кто не получил двоичные файлы непосредственно от вас, все равно могут получить копии исходных текстов вместе с письменным предложением.

Мы требуем, чтобы предложение было действительным для любой третьей стороны, чтобы те, кто таким образом получил эти двоичные файлы косвенно, могли заказать исходный текст у вас.

В версии 2 GPL сказано, что если выпускаются измененные версии, то они должны быть “лицензированы… для всех третьих сторон”. Кто эти третьи стороны?
В разделе 2 сказано, что измененные версии, которые вы распространяете, должны быть лицензированы для всех третьих сторон по GPL. Слова “все третьи стороны” означают абсолютно всех — но это не требует от вас делать для них что-то физически. Это только значит, что вы дали им разрешение применять вашу версию по GPL.
Требуется ли от меня заявление авторских прав на мои изменения в программе под GPL?
От вас не требуется заявлять авторские права на свои изменения. Однако в большинстве стран по умолчанию это происходит автоматически, так что вам нужно явно помещать свои изменения в общественное достояние, если вы не хотите, чтобы на них распространялись исключительные авторские права.

Независимо от того, заявите ли вы авторские права на свои изменения, в любом случае вы должны выпускать измененную версию в целом под GPL (если вы вообще выпускаете свою измененную версию ).

Если программа сочетает тексты из общественного достояния с текстами под GPL, могу ли я взять часть из общественного достояния и пользоваться ею, как текстом из общественного достояния?
Вы можете делать это, если вы можете понять, какая часть относится к общественному достоянию, и отделить ее от остального. Если текст помещен в общественное достояние его разработчиком, он остается в общественном достоянии независимо от того, где он побывал.
Позволяет ли мне GPL продавать копии программы за деньги?
Да, GPL разрешает делать это всем. Право продавать копии — часть определения свободной программы. Кроме одной особой ситуации, на цену, которую вы можете взимать, не налагается ограничений (это единственное исключение — обязательное письменное предложение поставки исходного текста, которое должно сопровождать выпуск только двоичных файлов).
Позволяет ли мне GPL брать плату за получение программы с моего распространяющего сайта?
Да. Вы можете брать любую плату, какую только пожелаете, за распространение копии программы. Если вы распространяете двоичные файлы по сети, вы должны предоставить “эквивалентный доступ” для получения исходного текста — следовательно, плата за получение по сети исходного текста не должна быть больше, чем плата за получение двоичных файлов.
Позволяет ли мне GPL требовать, чтобы всякий, кто получает программу, платил мне или извещал меня?
Нет. Фактически подобное требование сделало бы программу несвободной. Если люди должны платить, когда они получают копию программы, или если они должны оповещать кого-то конкретно, то программа не свободна. См. определение свободной программы.

GPL — лицензия свободных программ, и следовательно, она разрешает людям использовать и даже распространять программу без требования платить за это кому бы то ни было.

Вы можете взимать плату с людей за получение копии от вас. Вы не можете требовать, чтобы люди платили вам, когда они получают копию от кого-то другого.

Если я распространяю программу под GPL за деньги, требуется ли от меня также предоставить ее обществу бесплатно?
Нет. Однако если кто-то заплатил вам и получил копию, GPL дает ему свободу выпускать ее в обществе, за деньги или бесплатно. Например, кто-нибудь мог бы вам заплатить, а затем разместить свою копию на сайте в общем доступе.
Позволяет ли мне GPL распространять копии по договору о неразглашении?
Нет. В GPL сказано, что всякий, кто получает от вас копию, вправе перераспространять копии, с изменениями или без них. Вам не разрешено распространять работу на сколько-нибудь более ограничительной основе.

Если кто-то просит вас подписать договор о неразглашении для получения программы под GPL, авторские права на которую принадлежат ФСПО, пожалуйста, информируйте нас немедленно, написав по адресу: license-violation@fsf.org.

Если нарушение касается программ под GPL, правообладатель которых — кто-то другой, пожалуйста, проинформируйте этого правообладателя точно так же, как вы сделали бы это в отношении к любому другому нарушению GPL.

Позволяет ли мне GPL распространять измененную или тестовую версию по договору о неразглашении?
Нет. В GPL сказано, что ваши модифицированные версии должны нести все свободы, объявленные в GPL. Так что любой, кто получает от вас копию вашей версии, вправе распространять копии (с изменениями или без них) этой версии. Вы не можете распространять какую бы то ни было версию работы на более ограничительной основе.
Позволяет ли мне GPL разрабатывать измененную версию по договору о неразглашении?
Да. Например, вы можете заключить контракт на разработку изменений и договориться не выпускать свои изменения, пока на это не согласится заказчик. Это разрешается, потому что в этом случае никакие тексты под GPL не распространяются на условиях неразглашения.

Вы можете также передать свои изменения заказчику по GPL, но договориться не передавать их кому бы то ни было другому без согласия заказчика. В этом случае тоже никакие тексты под GPL не распространяются на условиях неразглашения или каких-то дополнительных ограничений.

GPL дала бы право заказчику перераспространять вашу версию. В таких обстоятельствах заказчик, вероятно, решит не пользоваться этим правом, но оно у него есть.

Я хочу признания за свою работу. Я хочу, чтобы люди знали, что я написал. Могу я требовать признания, если я применяю GPL?
Вы безусловно можете требовать признания за свою работу. Часть процедуры выпуска программы под GPL — запись примечания об авторских правах с вашим именем (предполагается, что вы — правообладатель). GPL требует, чтобы все копии несли соответствующее примечание об авторских правах.
Почему GPL требует передачи копии GPL в каждой копии программы?
Передавать копию лицензии с произведением жизненно важно, чтобы каждый, кто получает копию программы, мог знать, каковы его права.

Мог бы возникнуть соблазн включать адрес в Интернете, который указывает на лицензию, вместо самой лицензии. Но вы не можете быть уверены, что этот адрес все еще будет действителен пять или десять лет спустя. Через двадцать лет адреса в Интернете в том виде, в каком мы их знаем сейчас, возможно, больше не будут существовать.

Единственный способ гарантировать, что у людей, у которых есть копия программы, будет постоянная возможность взглянуть на лицензию, несмотря на все изменения, которые произойдут в сети,— включить копию лицензии в программу.

Что, если работа не намного больше самой лицензии?
Если отдельная программа настолько коротка, вы можете использовать для нее и простую всеразрешающую лицензию, а не GNU GPL.
Могу я опустить преамбулу GPL или инструкции по применению ее для собственных программ, чтобы сэкономить место?
Преамбула и инструкции — составные части GNU GPL, они не могут опускаться. По сути, на GPL распространяется авторское право, и ее лицензия допускает только дословное копирование всей GPL в целом (вы можете пользоваться юридическими условиями, чтобы составить другую лицензию, но это не будет GNU GPL).

Преамбула и инструкции добавляют примерно до 5000 символов, меньше, чем 1/3 общего размера GPL. Это не составит существенного относительного увеличения в размере пакета программ, если только сам пакет не очень мал; в этом случае вы можете использовать и простую всеразрешающую лицензию, а не GNU GPL.

Что имеют в виду, когда говорят, что две лицензии “совместимы”?
Чтобы комбинировать две программы (или существенные их части) в одной более крупной работе, вам нужно разрешение использовать обе программы таким образом. Если лицензии двух программ допускают это, то они совместимы. Если невозможно одновременно удовлетворить требованиям обеих лицензий, то они несовместимы.

Для некоторых лицензий способ комбинирования может влиять на то, совместимы ли они — например, они могут позволять связывать друг с другом два модуля, но не позволять сливать их тексты в одном модуле.

Если вы хотите просто установить две отдельные программы в одной и той же системе, необходимости в том, чтобы их лицензии были совместимы, нет, потому что это не объединяет их в более крупную работу.

Что означают слова “лицензия совместима с GPL”?
Это значит, что эта лицензия и GNU GPL совместимы; вы можете комбинировать текст, выпущенный по этой лицензии, с текстом, выпущенным по GNU GPL, в одной более крупной программе.

GPL разрешает делать такие комбинации в случае, если комбинация выпускается по GNU GPL. Другая лицензия совместима с GPL, если она тоже разрешает это.

Могу ли я написать свободную программу, которая пользуется несвободными библиотеками?
Если вы это сделаете, вашей программой нельзя будет полноценно пользоваться в свободной среде. Если вашей программе для выполнения определенной работы необходима несвободная библиотека, то программа не может выполнять эту работу в мире свободы. Если программа без несвободной библиотеки вообще не может выполняться, то она не может быть частью такой свободной операционной системы, как GNU; она стоит полностью за пределами мира свободы.

Итак, подумайте, пожалуйста: нельзя ли найти способ выполнить эту работу без пользования этой библиотекой? Можете ли вы написать свободную замену этой библиотеки?

Если программа уже написана с использованием несвободной библиотеки, возможно, менять решение уже поздно. Если вы выпустите программу в том виде, в каком она есть, это не будет хуже, чем если вы ее не выпустите. Но упомяните, пожалуйста, в файле README, что зависимость от несвободной библиотеки — это недостаток, и поставьте задачу изменить программу так, чтобы она делала то же самое без несвободной библиотеки. Предложите, пожалуйста, тому, кто думает в дальнейшем провести существенную работу над программой, прежде всего освободить ее от этой зависимости.

Обратите внимание, что сочетание определенных несвободных библиотек со свободными программами под GPL может быть сопряжено с юридическими проблемами. За более подробными сведениями обращайтесь, пожалуйста, к ответу на вопрос о программах под GPL с библиотеками, несовместимыми с GPL.

Какие юридические проблемы возникают, если я применяю несовместимые с GPL библиотеки с программами под GPL?
Если библиотеки, с которыми вы компонуетесь, попадают под следующее исключение в GPL:

Однако, как особое исключение, в исходный текст, который распространяется, не обязательно включать что-либо из того, что обычно распространяется (либо в виде исходного текста, либо в двоичной форме) с основными компонентами (компилятором, ядром и так далее) операционной системы, под управлением которой этот исполняемый файл работает, если этот компонент сам не сопровождает исполняемый файл.

то вы не обязаны делать что-то особо, чтобы применять их; требование распространять исходный текст всей программы не включает эти библиотеки, даже если вы распространяете их в скомпонованном исполняемом файле. Таким образом, если библиотеки, которые вам нужны, поставляются с основными компонентами несвободной операционной системы, в GPL сказано, что люди могут компоновать вашу программу с ними безо всяких условий.

Если вы хотите, чтобы ваша программа компоновалась с библиотекой, которая не попадает под это исключение, вам нужно добавить свое собственное исключение, полностью внешнее по отношению к GPL. Следующее уведомление об авторских правах и о лицензии дает разрешение компоновать с программой ГДЕ:

Copyright (C) [годы] <имя правообладателя>

Эта программа свободна; вы можете перераспространять и/или изменять ее на условиях Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения; либо версии 2 этой лицензии, либо (по вашему выбору) любой более поздней версии.

Эта программа распространяется в надежде на то, что будет полезной, но БЕЗО ВСЯКОЙ ГАРАНТИИ; даже без неявной гарантии ТОВАРНОГО ВИДА или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ НУЖД. Подробности см. в Стандартной общественной лицензии GNU.

Вы должны были получить копию Стандартной общественной лицензии GNU вместе с этой программой; если это не так, напишите по адресу: Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

В результате динамической или статической компоновки АБВ с другими модулями получается произведение, производное от АБВ. Таким образом, условия и требования Стандартной общественной лицензии GNU распространяются на комбинацию в целом.

В дополнение, как особое исключение, правообладатели АБВ дают вам разрешение комбинировать АБВ со свободными программами или библиотеками, выпускаемыми под GNU LGPL, и с программами, включенными в стандартный выпуск ГДЕ под лицензией ЖЗИ (или модифицированными версиями под той же лицензией). Вы можете копировать и распространять такую систему, следуя требованиям GNU GPL в отношении АБВ и требованиям лицензий других программ, которые используются, при условии, что вы предоставляете исходный текст этих других программ, когда и как GNU GPL требует распространять исходный текст.

Обратите внимание, что те, кто делает измененную версию АБВ, не обязаны предоставлять это особое исключение для своих измененных версий; это решают они. Стандартная общественная лицензия GNU дает разрешение выпускать измененную версию без этого исключения; это исключение также создает возможность выпуска измененной версии, в которой это исключение продлевается.

Вам следует разместить этот текст в каждом файле, к которому относится исключение.

По закону только правообладатели программы могут санкционировать это исключение. Если вы написали всю программу сами, то (предполагая, что ваш работодатель или учебное заведение не претендует на авторские права) вы являетесь правообладателем — так что вы можете санкционировать исключение. Но если вы хотите воспользоваться частями других программ под GPL, написанных другими авторами, в своей программе, вы не можете санкционировать это исключение за них. Вы должны получить согласие от правообладателей этих программ.

Когда другие изменяют программу, им не обязательно делать это же исключение для своих текстов — они сами решают, сделать ли это.

Если библиотеки, с которыми вы собираетесь компоновать программу, несвободны, прочтите, пожалуйста, ответ на вопрос о написании свободных программ с использованием несвободных библиотек.

Как мне получить авторские права на свою программу, чтобы выпустить ее под GPL?
В соответствии с Бернской конвенцией все, что написано, автоматически попадает под действие авторского права, как только оно принимает фиксированную форму. Так что вам не нужно делать что бы то ни было, чтобы “получить” авторские права на то, что вы пишете — до тех пор, пока никто другой не может заявить, что он — правообладатель вашей работы.

Однако зарегистрировать авторские права в США — очень неплохая идея. Это придаст вам больше веса в разбирательствах с нарушителями в США.

Случай, когда у кто-то другого могла бы быть возможность заявить авторские права — это если вы наемный работник или учащийся; в этом случае наниматель или учебное заведение могли бы заявить, что вы делали эту работу для них и что авторские права принадлежат им. Было ли бы их заявление обоснованным, зависит от таких обстоятельств, как законы тех мест, где вы живете, от вашего договора с нанимателем и рода работ, которые вы выполняете. Если есть какое-то сомнение, лучше всего проконсультироваться с юристом.

Если вы думаете, что наниматель или учебное заведение могли бы претендовать на авторские права, вы можете устранить неясность, получив отказ от авторских прав, подписанный уполномоченным на это руководителем компании или учебного заведения (ваш непосредственный начальник или преподаватель обычно не уполномочен подписывать такие документы).

Что, если мое учебное заведение захочет обратить мою программу в свой несвободный программный продукт?
В наши дни многие университеты пытаются собирать фонды, ограничивая пользование знаниями, которые они вырабатывают; фактически их поведение мало отличается от поведения коммерческих предприятий (см. общее обсуждение этой проблемы и ее последствий в статье “Прибранный университет” в “Атлантическом ежемесячнике” в марте 2000 года).

Если вы видите, что есть хоть какая-то возможность, что ваше учебное заведение может отказать вам в позволении выпустить вашу программу как свободную, лучше всего поднять вопрос на как можно более ранней стадии. Чем ближе программа к тому, чтобы полезно работать, тем больший соблазн может ощущать администрация, чтобы забрать ее у вас и завершить без вас. На ранней стадии вам будет легче.

Итак, мы рекомендуем вам подойти к ним, когда программа готова еще только наполовину, и сказать: “Если вы согласитесь выпустить это как свободную программу, я доделаю ее”. Не относитесь к этому как к блефу. Чтобы выйти победителем, нужно иметь смелость сказать: “Моя программа будет свободна; иначе она не увидит свет”.

Не могли бы вы дать мне подробные указания насчет того, как применить GPL к моей программе?
См. страницу с указаниями по GPL.
Мне говорили, что кто-то получил копию программы под GPL по другой лицензии. Возможно ли это?
GNU GPL не дает пользователям разрешения прилагать другие лицензии к программе. Но правообладатель программы может выпускать ее под несколькими разными лицензиями параллельно. Одной из них может быть GNU GPL.

Лицензия, которая содержится в вашей копии (в предположении, что она была помещена туда правообладателем и что вы получили копию законным путем), является лицензией, которая распространяется на вашу копию.

Мне хотелось бы выпустить написанную мной программу под GNU GPL, но я хочу использовать те же исходные тексты в несвободных программах.
Выпуск несвободной программы всегда этически нечист, но юридически у вас к этому нет никаких препятствий. Если вы — правообладатель программы, вы можете выпускать ее под разными неисключительными лицензиями в разных случаях.
Связан ли разработчик программы под GPL текстом лицензии? Могут ли быть действия разработчика нарушением GPL?
Строго говоря, GPL — лицензия разработчика для использования, распространения и изменения программы другими. Сам разработчик не связан лицензией, поэтому независимо от того, что делает разработчик, это не является “нарушением” GPL.

Однако если разработчик делает что-то, что нарушало бы GPL, если бы это делал кто-то другой, то разработчик, несомненно, утратит свои моральные позиции в сообществе.

Может ли разработчик программы, распространявший ее по GPL, впоследствии передать исключительные права на нее другой стороне?
Нет, потому что общество уже получило право пользоваться программой на условиях GPL и это право не может быть отозвано.
Можно мне пользоваться редакторами под GPL, такими, как GNU Emacs, для разработки несвободных программ? Можно мне пользоваться средствами разработки под GPL, такими, как GCC, чтобы компилировать их?
Да, потому что авторское право на редакторы и средства разработки не распространяется на то, что вы пишете. Применение их не налагает никаких юридических ограничений на лицензию, которую вы используете для своих программ.

Некоторые программы по техническим причинам вставляют части самих себя в выходные файлы — например, Bison копирует стандартную программу синтаксического анализатора в свой выходной файл. В таких случаях на скопированный текст в выходном файле распространяется та же самая лицензия, которая распространяется на него в тексте исходного пакета. В то же время часть выходного файла, производная от входных данных программы, наследует авторско-правовой статус входных данных.

Вместе с тем, Bison тоже можно применять для разработки несвободных программ — благодаря тому, что мы решили явно разрешить применение стандартной программы его синтаксического анализатора в выходных файлах без ограничений. Мы приняли такое решение, потому что уже были другие средства, сопоставимые с Bison, которые допускали применение для несвободных программ.

Есть ли у меня право на “добросовестное использование” исходного текста программы под GPL?
Да, есть. “Добросовестное использование” — это использование, которое допускается без какого бы то ни было особого разрешения. Поскольку вам не нужно разрешение разработчиков на такое использование, вы можете делать это независимо от того, что об этом говорят разработчики — в лицензии или где-то еще, независимо от того, является ли лицензией GNU GPL или любая другая лицензия свободных программ.

Однако обратите внимание, что не существует общемировых принципов добросовестного использования; то, какого рода использование считается “добросовестным”, меняется от одной стране к другой.

Может ли правительство США выпустить программу под GNU GPL?
Если программа написана сотрудниками федеральных органов США в процессе их работы, то она находится в общественном достоянии, то есть исключительное авторское право на нее не распространяется. Поскольку GNU GPL основана на авторском праве, такую программу нельзя выпустить под GNU GPL (что, однако, не мешает ей быть свободной: программа в общественном достоянии свободна).

Однако когда федеральное государственное агентство США применяет для разработки программ контракты, это другое дело. По контракту от подрядчика может требоваться выпуск программы под GNU GPL (таким образом разрабатывался компилятор GNU Ada). Или по контракту авторские права могут передаваться государственному агентству, которое может затем выпустить программу под GNU GPL.

Может ли правительство США выпускать улучшения программы под GPL?
Да. Если улучшения написаны сотрудниками государственных учреждений США в процессе их работы, то улучшения находятся в общественном достоянии. Однако на улучшенную версию в целом все равно распространяется GNU GPL. Никаких затруднений это не представляет.

Если государство применяет для этой работы контракты, то на сами улучшения могут распространяться условия GPL.

Есть ли способ распространить GPL на выходные данные, которые люди получают при пользовании моей программой? Например, если моя программа применяется для разработки аппаратуры, могу я потребовать, чтобы эти разработки были свободны?
Вообще это юридически невозможно; авторское право не дает вам никакой возможности налагать требования на результаты, которые люди получают из своих исходных данных с помощью вашей программы. Если пользователь применяет вашу программу для ввода или преобразования своих собственных данных, то авторское право на выходные данные принадлежит ему, а не вам. В более общем случае, когда программа преобразует исходные данные в какую-то другую форму, авторско-правовой статус выходных данных наследует статус исходных данных, из которых они были получены.

Итак, единственный для вас способ получить возможность налагать требования на выходные данные — сделать так, чтобы существенная часть выходных данных копировалась (более или менее) из текста вашей программы. Например, на часть выходных файлов программы Bison (см. выше) распространялась бы GPL, если бы мы не сделали особого исключения для этого случая.

Вы могли бы заставить программу искусственно вставлять определенный текст в свои выходные данные, даже если для этого нет технической необходимости. Но если этот вставляемый текст не служит никакой практической цели, то пользователь мог бы просто удалять этот текст из выходных данных и пользоваться только тем, что останется. Тогда ему не пришлось бы подчиняться условиям распространения вставляемого текста.

В каких случаях GPL распространяется и на результат работы программы под GPL?
Только когда программа копирует часть самой себя в выходные данные.
Если я добавляю модуль к программе под GPL, требуется ли от меня использование GPL в качестве лицензии для моего модуля?
В GPL сказано, что комбинированная программа в целом должна выпускаться под GPL. Так что ваш модуль должен быть доступен для использования на условиях GPL.

Но вы можете дать дополнительное разрешение для пользования вашим текстом. Вы можете, если желаете, выпустить свой модуль по лицензии, которая слабее, чем GPL, но совместима с GPL. На странице со списком лицензий приводится неполный список совместимых с GPL лицензий.

Если библиотека выпускается на условиях GPL (не LGPL), значит ли это, что любая программа, которая ею пользуется, должна выпускаться на условиях GPL?

Да, потому что программа в действительности объединяется с библиотекой. Таким образом, условия GPL распространяются на всю комбинацию. Программные модули, которые связываются с библиотекой, могут быть под различными совместимыми с GPL лицензиями, но произведение в целом должно лицензироваться по GPL. См. также Что означают слова “лицензия совместима с GPL”?

Если интерпретатор языка программирования выпускается под GPL, значит ли это, что программы для него должны выпускаться на условиях совместимых с GPL лицензий?
Если интерпретатор только интерпретирует язык, ответ отрицателен. Для интерпретатора выполняемая программа — это только данные; такие лицензии свободных программ, как GPL, основанные на авторском праве, не могут ограничивать того, какие данные вы используете с интерпретатором. Вы можете выполнять его с любыми данными (интерпретируемой программой), как вам угодно, нет никаких требований относительно лицензирования этих данных кому бы то ни было.

Однако когда интерпретатор расширяется для того, чтобы обеспечить “привязки” к другим средствам (часто, но не всегда — к библиотекам), интерпретируемая программа фактически компонуется со средствами, которыми она пользуется с помощью этих привязок. Так что если эти средства выпускаются под GPL, то интерпретируемая программа должна выпускаться совместимым с GPL образом. JNI (Java Native Interface) — пример механизма такой привязки; библиотеки, к которым предоставляется доступ таким образом, компонуются динамически с программами на Java, которые вызывают их. Эти библиотеки компонуются также с интерпретатором. Если интерпретатор статически связывается с этими библиотеками или если он разработан так, чтобы динамически компоноваться с этими конкретными библиотеками, то он тоже должен выпускаться совместимым с GPL образом.

Другой сходный и очень распространенный случай — поставка с интерпретатором библиотек, которые сами интерпретируются. Например, Perl поставляется с большим набором модулей на языке Perl, а реализация Java поставляется с большим набором классов языка Java. Эти библиотеки и программы, которые их вызывают, всегда динамически компонуются друг с другом.

Как следствие, если вы решили пользоваться модулями Perl или классами Java под GPL в своей программе, то вы должны выпускать программу совместимым с GPL образом независимо от лицензии, применяемой для Perl или интерпретатора Java, на котором будет выполняться комбинированная программа на языке Perl или Java.

Я пишу приложение для Windows на Microsoft Visual C++ (или Visual Basic) и буду выпускать его под GPL. Допускает ли GPL динамическое связывание моей программы с библиотеками времени исполнения Visual C++ (или Visual Basic)?
GPL допускает это, потому что библиотека времени исполнения, как правило, сопровождает компилятор или интерпретатор, которым вы пользуетесь. Так что она попадает под исключение в разделе 3 GPL.

Это не значит, что писать программу так, чтобы она работала только под Windows — неплохая идея. Это приводит к программе, которая свободна, но “сидит в западне” (в данном случае в западне Windows, а не Java, но результат — тот же). (Историческое замечание: на декабрь 2006 года Sun находится в процессе перевыпуска своей платформы Java под GNU GPL.)

Почему первоначальная лицензия BSD несовместима с GPL?
Потому что она налагает некое требование, которого нет в GPL; а именно, требование на рекламные материалы для программы. В GPL сказано:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.
Вы не можете налагать никаких дополнительных ограничений на осуществление получателями прав, предоставляемых данной лицензией.

Пункт о рекламе как раз и устанавливает такое дополнительное ограничение, и вследствие этого несовместим с GPL.

В пересмотренной лицензии BSD пункта о рекламе нет, что устраняет проблему.

Когда программа и ее внешние модули считаются единой комбинированной программой?
Это зависит от того, как главная программа вызывает свои внешние модули. Если главная программа использует для этого fork и exec и они завязывают тесное общение через сложные структуры данных, общие или передаваемые туда и обратно, то они становятся единой комбинированной программой. Когда главная программа использует для вызова внешних модулей просто fork и exec, не завязывая тесного общения с ними, внешние модули остаются отдельными программами.

Если главная программа динамически компонуется с модулями и они вызывают функции друг из друга и разделяют общие структуры данных, мы убеждены, что они формируют единую комбинированную программу, которая должна рассматриваться как расширение и главной программы, и модулей. Если главная программа динамически компонуется с модулями, но взаимодействие между ними ограничено вызовом “главной” процедуры модуля с какими-то параметрами и ожиданием результата, то это предельный случай.

Применение общей памяти для обмена сложными структурами данных вполне эквивалентно динамическому связыванию.

Если программа, выпущенная под GPL, пользуется внешними модулями, каковы требования к лицензиям модуля?
См. также отдельный вопрос для определения того, считаются ли модули и главная программа единой комбинированной программой или раздельными произведениями.

Если главная программа и модули составляют комбинированную программу, то это значит, что вы должны выпускать модуль под GPL или совместимой с ней лицензией свободных программ и распространять его с исходным текстом так, чтобы это было совместимо с GPL. Если главная программа отдельна от внешних модулей, то это не налагает требований на внешние модули.

Могу я применять GPL, когда пишу внешний модуль к несвободной программе?
См. также отдельный вопрос для определения того, считаются ли модули и главная программа единой комбинированной программой или раздельными программами.

Если они формируют единую комбинированную программу, это значит, что объединение модуля под GPL с несвободной программой нарушало бы GPL. Однако вы можете решить эту юридическую проблему, добавив исключение к лицензии своего модуля, в котором дается разрешение компоновать его с несвободной главной программой.

См. также ответ на вопрос о написании свободных программ с использованием несвободных библиотек.

Могу я выпустить несвободную программу, составленную так, чтобы подгружать внешний модуль под GPL?
См. также отдельный вопрос для определения того, считаются ли модули и главная программа единой комбинированной программой или раздельными программами.

Если они формируют единую комбинированную программу, то главная программа должна выпускаться под GPL или совместимой с ней лицензией свободных программ, и при распространении главной программы для пользования с этими модулями должны соблюдаться условия GPL.

Однако если это раздельные произведения, то лицензия на модули не налагает требований на главную программу.

См. также ответ на вопрос о написании свободных программ с использованием несвободных библиотек.

У вас есть программа под GPL, которую мне хотелось бы скомпоновать с моими программами, чтобы получить несвободную программу. Означает ли факт компоновки с вашей программой, что от меня требуется выпускать свою программу под GPL?
Да.
В таком случае, есть ли у меня хоть какая-то надежда на получение от вас программы на условиях Меньшей GPL?
Попросить можно, но большинство авторов ответят твердым отказом. Идея GPL заключается в том, что если вы хотите включать наш исходный текст в свою программу, то ваша программа тоже должна быть свободной. Предполагается, что это окажет давление на вас, чтобы вы выпускали свою программу таким образом, чтобы она вошла в наше сообщество.

У вас всегда есть законная альтернатива: не пользоваться нашим исходным текстом.

Как мне позволить компоновать несвободные модули со своей библиотекой под GPL только по определенному протоколу?
Добавьте следующий текст к замечанию о лицензии в каждый файл пакета в конце текста, в котором говорится о том, что файл распространяется на условиях GNU GPL:

В результате динамической или статической компоновки АБВ с другими модулями получается произведение, производное от АБВ. Таким образом, условия и требования Стандартной общественной лицензии GNU распространяются на комбинацию в целом.

В дополнение, как особое исключение, правообладатели АБВ дают вам разрешение комбинировать АБВ со свободными программами или библиотеками, выпускаемыми под GNU LGPL, и с независимыми модулями, которые сообщаются с АБВ исключительно по протоколу АБВГДЕ. Вы можете копировать и распространять такую систему, следуя требованиям GNU GPL в отношении АБВ и требованиям лицензий других программ, которые используются, при условии, что вы предоставляете исходный текст этих других программ, когда и как GNU GPL требует распространять исходный текст.

Обратите внимание, что те, кто делает измененную версию АБВ, не обязаны предоставлять это особое исключение для своих измененных версий; это решают они. Стандартная общественная лицензия GNU дает разрешение выпускать измененную версию без этого исключения; это исключение также создает возможность выпуска измененной версии, в которой это исключение продлевается.

По закону только правообладатели программы могут санкционировать это исключение. Если вы написали всю программу сами, то (предполагая, что ваш работодатель или учебное заведение не претендует на авторские права) вы являетесь правообладателем — так что вы можете санкционировать исключение. Но если вы хотите воспользоваться частями других программ под GPL, написанных другими авторами, в своей программе, вы не можете санкционировать это исключение за них. Вы должны получить согласие от правообладателей этих программ.

Мной написано приложение, которое компонуется с большим числом разных составляющих с разными лицензиями. Я никак не могу понять, какие требования предъявляются к лицензированию моей программы. Не были бы вы так любезны рассказать мне, какими лицензиями я могу пользоваться?
Чтобы ответить на этот вопрос, нам нужно взглянуть на список всех компонентов, которыми пользуется ваша программа, и краткое (достаточно несколько предложений на каждый компонент) описание того, как ваше приложение использует этот компонент. Вот два примера:
  • Чтобы моя программа работала, ее нужно скомпоновать с библиотекой АБВ, распространяемой на условиях Меньшей GPL.
  • Моя программа делает системный вызов (с командной строкой, которую я составляю), чтобы запустить программу БВГ, которая лицензируется по “GPL с особым исключением, позволяющим компоновать с QUUX”.
Какова разница между “простым размещением на одном носителе” и “комбинированием двух модулей а одной программе”?
Простое размещение двух программ означает, что их записывают одну рядом с другой на одном и том же компакт-диске или на жестком диске. Мы употребляем этот термин в случае, когда они являются отдельными программами, а не частями единой программы. Если в этом случае на одну из программ распространяется GPL, это не сказывается на другой программе.

Комбинирование двух модулей означает соединение их вместе так, что они образуют единую более крупную программу. Если на любую из частей распространяется GPL, все сочетание должно также выпускаться под GPL — если вы не можете или не хотите этого делать, вам нельзя их комбинировать.

Что представляет собой комбинирование двух частей в одну программу? Это юридический вопрос, который в конечном счете решают судьи. Мы убеждены, что правильный критерий принимает в расчет как механизм взаимодействия (запуск процессов, каналы обмена данными, удаленные вызовы процедур, вызовы функций в общем адресном пространстве и т. д.), так и содержание взаимодействия (обмен какого рода информацией происходит).

Если модули включаются в один и тот же исполняемый файл, они определенно комбинируются в одной программе. Если модули составлены, чтобы работать, связываясь в общем адресном пространстве, это почти наверное означает, что они комбинируются в одну программу.

Напротив, каналы обмена данными, сокеты и аргументы командной строки — механизмы взаимодействия, обычно используемые между двумя отдельными программами. Так что когда они применяются для взаимодействия, модули обычно являются отдельными программами. Но если содержание взаимодействия достаточно глубоко, если происходит обмен сложными внутренними структурами данных, это тоже может быть основанием для того, чтобы считать две части составляющими одной более крупной программы.

Почему ФСПО требует, чтобы те, кто вносит вклад в программы, авторские права на которые принадлежат ФСПО, передавали фонду авторские права? Следует ли и мне делать это, если мне принадлежат авторские права на программу под GPL? Если да, то как?
Наши юристы сказали нам, что для того, чтобы занять наиболее выгодную позицию по обеспечению требований GPL в судебном процессе против нарушителей, нам следует принимать меры к тому, чтобы авторско-правовой статус программы оставался как можно более простым. Мы делаем это, прося каждого разработчика либо передать авторские права на его вклад ФСПО, либо отказаться от авторских прав на него и тем самым поместить его в общественное достояние.

Мы просим также отдельных разработчиков получать отказ от авторских прав со стороны их работодателей (если они есть), чтобы мы могли быть уверены, что эти работодатели не заявят, что права на вклад принадлежат им.

Конечно, если все разработчики помещают свои исходные тексты в общественное достояние, то нет авторского права, с помощью которого можно было бы требовать соблюдения GPL. Поэтому мы призываем людей передавать авторские права на крупные вклады исходных текстов и помещать в общественное достояние только небольшие изменения.

Если вы хотите работать над обеспечением соблюдения GPL в отношении вашей программы, то для вас, вероятно, было бы неплохой идеей следовать подобному правилу. Напишите, пожалуйста, по адресу <licensing@gnu.org>, если хотите получить более подробные сведения.

Можно мне изменить GPL и сделать другую лицензию?
Вы можете пользоваться условиями GPL (возможно, измененными) в другой лицензии при условии, что вы назовете свою лицензию по-другому и не включите в нее преамбулу GPL, и при условии, что вы внесете изменения в руководство к применению в конце, достаточные, чтобы его формулировки явно отличались от исходных и чтобы оно не упоминало GNU (хотя в действительности процедура, которую вы описываете, может быть сходна).

Если вы хотите воспользоваться нашей преамбулой в измененной лицензии, запросите, пожалуйста, разрешение по адресу <licensing@gnu.org>. Для этого мы хотели бы проанализировать требования лицензии, чтобы понять, одобряем ли мы их.

Хотя мы не будем выдвигать формальных возражений против создания вами таким образом измененной версии, мы надеемся, что вы дважды подумаете и откажетесь от этого. Измененная таким образом лицензия будет почти наверное несовместима с GNU GPL, а такая несовместимость препятствует полезному комбинированию модулей. Уже одно увеличение численности разных лицензий свободных программ само по себе создает дополнительные сложности.

Если я пользуюсь программой, которая получена на условиях GNU GPL, могу ли я видоизменить первоначальный исходный текст в новую программу, а затем распространять и продавать эту новую программу коммерчески?
Вам позволено продавать копии измененной программы за деньги, но только на условиях GNU GPL. Таким образом, вы должны, например, сделать исходный текст доступным для пользователей программы, как описано в GPL, и им должно быть разрешено изменять и перераспространять ее, как описано в GPL.

Эти требования — условия включения частей программ под GPL, которые вы получили, в свою собственную программу.

Могу я применять GPL для чего-нибудь кроме программ?
GPL можно применять для работ любого рода, если только ясно, что составляет “исходный текст” для этой работы. GPL определяет его как предпочтительную для внесения изменений форму работы.

Однако для руководств и учебников или, вообще, для любого рода работ, которые предназначены для обучения предмету, мы рекомендуем использовать GFDL, а не GPL.

Как LGPL работает с Java?
Она работает в соответствии с тем, как она составлена, для чего предназначена и так, как это задумано. Подробности см. в отдельной статье.
Рассмотрим ситуацию: 1) X выпускает версию V1 проекта под GPL. 2) Y вносит доработки в версию V2, которые включают изменения и новые тексты программ, основанные на V1. 3) X хочет выпускать V2 под лицензией, отличной от GPL. Нужно ли X разрешение Y?
Да. Y был обязан выпустить свою версию под GNU GPL как следствие того, что она была основана на версии V1, полученной от X. Ничто не требовало от Y согласиться на любую другую лицензию для текстов Y. Следовательно, X должен получить разрешение Y перед тем, как выпустить эти программы под другой лицензией.
Мне хотелось бы включить программу, распространяемую по GPL, в свою несвободную систему. Можно мне это делать?
Вы не можете включать программы, распространяемые по GPL, в несвободную систему. Цель GPL — предоставить каждому свободу копировать, передавать, понимать и изменять программу. Если бы вы могли включать программы, распространяемые по GPL, в несвободную систему, это привело бы к тому, что такие программы тоже стали бы несвободными.

Система, включающая программу, распространяемую по GPL, является расширенным вариантом этой программы. В GPL сказано, что расширенная версия программы должна выпускаться под GPL, если она вообще выпускается. Это делается по двум причинам: во-первых, чтобы гарантировать, что пользователи, которые получают программу, получают свободу, которая у них должна быть, а во-вторых, чтобы поощрить людей возвращать улучшения, которые они делают.

Однако во многих случаях вы можете распространять программы под GPL вместе со своей несвободной системой. Чтобы делать это правильно, вы должны удостовериться, что свободные и несвободные программы общаются на расстоянии вытянутой руки, что они не сочетаются настолько тесно, что это делает их фактически единой программой.

Разница между этим и “включением” программ под GPL частично состоит в сущности, а частично — в форме взаимодействия. Часть, которая касается сущности, такова: если две программы сочетаются так, что фактически становятся двумя частями одной программы, то вы не можете рассматривать их как раздельные программы. Таким образом, GPL должна распространяться на все это.

Если две программы остаются как следует разделенными, как компилятор и ядро или как редактор и командный интерпретатор, то вы можете относиться к ним как к двум раздельным программам — но вы должны делать это соответствующим образом. Здесь дело просто в форме: как вы описываете то, что вы делаете. Почему для нас это не безразлично? Потому что мы хотим гарантировать, что пользователи ясно осознают свободный статус программ под GPL в сборнике.

Если бы люди собирались распространять программы под GPL, называя их “частью” системы, о которой пользователи знают, что она частично несвободна, то у пользователей могла бы возникнуть неуверенность в своих правах по отношению к программам под GPL. Но если они будут знать, что то, что они получили — это свободная программа плюс другая программа, бок о бок, то их права будут ясны.

Применение определенной программы GNU под GPL не укладывается в наш проект по созданию несвободных программ. Не сделаете ли вы для нас исключения? Это означало вы большее число пользователей этой программы.
Простите, мы не делаем таких исключений. Это было бы неправильно.

Максимизация числа пользователей не является нашей целью. Вместо этого мы пытаемся дать жизненно важные свободы как можно большему числу пользователей. Говоря вообще, проекты по созданию несвободных программ мешают, а не помогают делу свободы.

Иногда мы действительно делаем исключения в лицензиях, чтобы поддержать проект, который производит свободные программы под лицензией, отличной от GPL. Однако для этого у нас должен быть веский довод в пользу того, что это будет содействовать делу свободы программ.

Иногда мы также действительно изменяем условия распространения пакета, когда оказывается ясно, что именно так следует служить делу свободы программ; но мы делаем это с большими предосторожностями, так что вам нужно будет предъявить нам очень убедительные доводы.

Мне хотелось бы включить программу под GPL в свою несвободную систему. Могу я это сделать, поставив “обертывающий” модуль под совместимой с GPL безвольной неограничительной лицензией (как, например, лицензия X11) между частью, распространяемой по GPL, и несвободной частью?
Нет. Лицензия X11 совместима с GPL, так что вы можете добавлять модуль в программу под GPL и помещать его под лицензию X11. Но если бы вы собирались встраивать обе части в более крупную программу, то все это в целом включало бы часть, распространяемую по GPL, так что это нужно было бы лицензировать в целом по GNU GPL.

Тот факт, что несвободный модуль А соединяется с модулем В, распространяемым по GPL, только через модуль Б, распространяемый по лицензии X11, с точки зрения закона значения не имеет; значение имеет тот факт, что модуль В включается в целое.

Допускает ли исключение libstdc++ динамическое связывание?
Да. Исключение предназначено для того, чтобы позволить людям компилировать несвободные программы с помощью gcc.
Мне хотелось бы изменить программы под GPL и связать их с библиотеками переносимости ОАО “Дармоед”. Я не могу распространять исходный текст этих библиотек, так что каждому пользователю, который хотел бы изменить эти версии, пришлось бы получить эти библиотеки отдельно. Почему GPL не допускает этого?
GPL не допускает этого по двум причинам.

Во-первых, общая причина. Если бы мы разрешили компании А сделать несвободный файл, а компании Б распространять программу под GPL, соединенную с этим файлом, получилась бы дыра в GPL, достаточно большая, чтобы через нее проехал грузовик. Это разрешило бы удерживать исходный текст всевозможных изменений и расширений программ под GPL.

Предоставление всем пользователям доступа к исходному тексту — одна из наших главных целей, так что такого последствия мы определенно хотим избежать.

Более конкретно, версии программ, связанные с библиотеками ОАО “Дармоед”, в действительности не были бы свободными в нашем понимании — они не поставлялись бы с полным исходным текстом, который позволяет пользователям править и перекомпилировать программу.

Если в лицензии для модуля М есть требование, несовместимое с GPL, но требование действует, только когда М распространяется сам по себе, а не когда он включается в более крупную программу, делает ли это лицензию несовместимой с GPL? Могу я комбинировать или связывать М с программой под GPL?
Если программа П выпускается под GPL, это значит, что любая и каждая часть ее может использоваться по GPL. Если вы включаете модуль М и выпускаете комбинированную программу П+М под GPL, это значит, что любая часть П+М может использоваться по GPL. М — одна из частей П+М. Таким образом, выпуск П+М под GPL означает, что М может использоваться по GPL. Иначе говоря, пользователь, получивший П+М по GPL, может удалить П, так что М останется под GPL.

Если лицензия модуля М разрешает вам давать такое разрешение, то она совместима с GPL. В противном случае она не совместима с GPL.

Если в лицензии М недвусмысленно сказано, что вы должны совершать определенные действия (несовместимые с GPL), когда вы распространяете модуль М сам по себе, то это не позволяет вам распространять М по GPL. Отсюда следует, что и П+М по GPL вам выпускать нельзя. Таким образом, вам нельзя связывать или комбинировать П с М.

Могу я выпустить измененную версию программы под GPL только в двоичном виде?
Нет. Весь смысл GPL заключается в том, что все модифицированные версии должны быть свободными программами — что означает, в частности, что исходный текст модифицированной версии доступен пользователям.
Я взял по сети только двоичный файл. Если я распространяю копии, должен ли я получить исходный текст и распространять его тоже?
Да. Общее правило таково: если вы распространяете двоичные файлы, вы должны распространять и полный исходный текст. Исключение для случая, когда вы получили письменное предложение исходного текста, весьма ограничено.
Я хочу распространять двоичные файлы на физическом носителе без сопровождающих исходных текстов. Могу я поставлять исходный текст по FTP вместо заказа по почте?
От вас требуется предоставить исходный текст в ответ на заказ по почте на физическом носителе, если кто-нибудь закажет его. Вы, разумеется, можете предлагать соответствующий исходный текст по FTP в дополнение к возможности заказа по почте, но доступа к исходному тексту по FTP не достаточно, чтобы выполнить условия раздела 3 GPL.

Когда пользователь заказывает исходный текст, вы должны гарантировать, что исходный текст дойдет до этого пользователя. Если конкретный пользователь может легко и удобно получить от вас исходный текст по FTP, прекрасно — это решает задачу. Но не каждый пользователь может сделать это. Остальные пользователи имеют такое же право на получение от вас исходного текста, а это значит, что вы должны быть готовы выслать его им по почте.

Если доступ по FTP достаточно удобен, возможно, никто не станет заказывать копию по почте. Если это так, то вам никогда не придется посылать ее. Но вы не можете предполагать этого.

Конечно, легче всего просто с самого начала посылать исходный текст с двоичными файлами.

Если вы распространяете двоичные файлы по FTP, вы должны распространять исходный текст по FTP.

Мой знакомый получил двоичный файл под GPL с предложением поставки исходного текста и сделал для меня копию. Могу я воспользоваться предложением, чтобы получить исходный текст?
Да, можете. Предложение должно быть действительным для всякого, у кого есть копия двоичного файла, который оно сопровождает. Вот почему в GPL сказано, что ваш знакомый должен дать вам копию предложения вместе с копией двоичного файла — так что вы можете им воспользоваться.
Могу я разместить двоичные файлы на своем сервере в Интернете, а исходные тексты — на другом сайте?
В GPL сказано, что вы должны предлагать доступ к копии исходного текста “из того же самого места”; то есть, рядом с двоичными файлами. Однако если вы договоритесь с другим сайтом, чтобы исходный текст был доступен, и разместите ссылку или перекрестный указатель на исходный текст рядом с двоичными файлами, мы думаем, что это можно считать “тем же самым местом”.

Обратите внимание, однако, что найти какой-нибудь сайт, на котором сегодня оказался соответствующий исходный текст, и сказать, чтобы люди искали там, не достаточно. Завтра с того сайта исходный текст могут удалить или просто заменить на более новую версию той же программы. Тогда вы больше не будете удовлетворять требованиям GPL. Чтобы приложить разумные усилия к соблюдению лицензии, вам нужно достигнуть положительной договоренности с тем другим сайтом и таким образом гарантировать, что исходный текст будет на нем доступен до тех пор, пока вы предоставляете доступ к двоичным файлам.

Я хочу распространять расширенную версию программы под GPL в двоичной форме. Достаточно ли распространять исходный текст исходной версии?
Нет, вы должны поставлять исходный текст, который соответствует двоичному файлу. “Соответствующий исходный текст” означает исходный текст, из которого пользователи могут пересобрать тот же самый двоичный файл.

В понятие свободной программы входит то, что у пользователей должен быть доступ к исходному тексту программ, которыми они пользуются. У тех, кто пользуется вашей версией, должен быть доступ к исходному тексту вашей версии.

Одна из важнейших целей GPL — выстроить Мир свободы, гарантируя, что улучшения свободной программы сами будут свободны. Если вы выпускаете улучшенную версию программы под GPL, вы должны выпустить улучшенный исходный текст по GPL.

Я хочу распространять двоичные файлы, но распространение полного исходного текста неудобно. Будет ли достаточно, если я с двоичными файлами буду передавать пользователям точные описания отличий от “стандартной” версии?
В таком желании нет ничего плохого, но этот метод предоставления исходных текстов в действительности не выполняет своих задач.

Пользователь, которому понадобится исходный текст через год, может к тому времени быть не в состоянии получить нужную версию с другого сайта. На сайте со стандартной программой может быть новая версия, а описания отличий, вероятно, к той версии не подойдут.

Итак, с двоичными файлами вам нужно предоставлять полные исходные тексты, а не различия.

Могу я предоставлять доступ к двоичным файлам на сервере в сети, но высылать исходные тексты только тем, кто их закажет?

Если вы хотите распространять двоичные файлы по анонимному FTP, вы по-прежнему должны предоставлять исходный текст одним из вариантов, перечисленных в разделе 3. Это не должно быть трудно. Если хотите, вы можете предоставить письменное предложение исходного текста; это допускается разделом 3(b). Но если вы можете найти сайт, чтобы распространять свою программу, вы, конечно, можете найти и такой, на котором хватило бы места для исходных текстов.

Независимо от того, как вы распространяете исходный текст, исходные тексты, которые вы предоставляете, должны точно соответствовать двоичным файлам. В частности, вы должны убедиться, что это тексты той же версии программы — не старой версии и не более новой.

Вы можете предоставлять исходные тексты и двоичные файлы с разных машин при условии, что до них одинаково легко добраться, и при условии, что рядом с двоичными файлами у вас есть сведения о том, где найти исходные тексты.

Как мне гарантировать, что каждый пользователь, получающий по сети двоичные файлы, получает также исходный текст?
Вы не обязаны этого гарантировать. Как только вы предоставили доступ к исходному тексту и двоичным файлам так, что пользователи видят, что доступно, и берут то, что им нужно, вы сделали все, что от вас требуется. Брать ли у вас исходный текст — дело пользователя.

Наши требования к распространителям составлены для того, чтобы гарантировать, что пользователи могут получить исходный текст, а не для того, чтобы заставлять пользователей получать исходный текст, даже если он им не нужен.

Фирма исполняет на сайте модифицированную версию программы под GPL. Сказано ли в GPL, что они должны выпустить свои модифицированные исходные тексты?
GPL разрешает всем делать модифицированные версии и применять их безо всякой передачи другим. То, что делает эта фирма — особый случай таких действий. Следовательно, фирма не обязана выпускать модифицированные исходные тексты.

Важно, чтобы у людей была свобода вносить изменения для личного пользования безо всякой публикации этих изменений. Однако размещение программы на сервере, чтобы публика с ней общалась, едва ли является “личным” использованием, так что было бы законным потребовать выпуска исходного текста в этом особом случае. Мы думаем о том чтобы сделать что-то подобное в версии 3 GPL, но точная формулировка нам пока в голову не пришла.

До тех пор для программ, составленных для применения на сетевом сервере, вам может подойти GPL Афферо.

Является ли размножение и применение многих копий внутри одной организации или предприятия “распространением”?
Нет, в этом случае организация просто делает копии для себя. Как следствие, предприятие или другая организация может разработать измененную версию и установить ее на свои собственные вычислительные средства, не разрешая персоналу распространять эту измененную версию вне организации.

Однако когда организация передает копии другим организациям или частным лицам, это является распространением. В частности, передача копий подрядчикам для пользования вне сайта является распространением.

Если кто-нибудь украдет компакт-диск с версией программы под GPL, дает ли GPL ему право распространять эту версию дальше?
Если эта версия была выпущена где-то еще, то право делать и перераспространять копии по GPL у вора, вероятно, есть, но если его посадят в тюрьму за кражу компакт-диска, ему, возможно, придется подождать, когда его выпустят на свободу, чтобы иметь возможность делать это.

Если версия, о которой идет речь, не опубликована, и предприятие считает ее своей коммерческой тайной, то публикация может быть нарушением закона о коммерческой тайне, в зависимости от других обстоятельств. GPL этого не отменяет. Если бы предприятие пыталось выпустить свою версию и тем не менее относиться к ней как к коммерческой тайне, то это было бы нарушением GPL, но если предприятие эту версию не выпустило, то такого нарушения не было.

Что, если предприятие передает мне копию работы каких-то других разработчиков, распространяемой под GPL, как коммерческую тайну?
Это предприятие нарушило GPL и должно будет прекратить распространение этой программы. Обратите внимание, что это отличается от предыдущего случая с кражей: предприятие не распространяет копию преднамеренно, когда ее крадут, так что в этом случае предприятие не нарушает GPL.
Что, если предприятие передает копию своей собственной работы, распространяемой под GPL, как коммерческую тайну?
Если распространяемая программа не включает в себя никакую работу кого-то еще, распространяемую по GPL, то предприятие не нарушает GPL (подробнее см. Связан ли разработчик программы под GPL текстом лицензии? Могут ли быть действия разработчика нарушением GPL?). Но предприятие делает два противоречивых заявления о том, что вам можно делать с этой программой: что вам можно ее распространять и что вам этого нельзя. Имело бы смысл потребовать разъяснить условия пользования этой программой перед тем, как вы примите копию.
Почему некоторые библиотеки GNU выпускаются по обычной GPL, а не по Меньшей GPL?
Применение Меньшей GPL для любой конкретной библиотеки является отступлением от принципов свободного программного обеспечения. Это значит, что мы частично отбрасываем усилия защитить свободу пользователей и некоторые из требований по возвращению того, что выстроено поверх программ под GPL. Сами по себе это изменения к худшему.

Иногда местное отступление стратегически выгодно. Иногда применение LGPL для библиотеки могло бы привести к более широкому применению этой библиотеки и, таким образом, большему числу улучшений в ней, более широкой поддержке свободных программ и так далее. Это могло бы быть полезно для свободных программ, если это происходит в широких масштабах. Но насколько они будут широки? Можно только гадать.

Было бы хорошо опробовать на короткое время LGPL для каждой библиотеки, посмотреть, помогает ли это, и вернуться к GPL, если нет. Но это нереально. После того, как мы применили LGPL для конкретной библиотеки, вернуться назад трудно.

Итак, мы решаем, какую лицензию применять, отдельно для каждой библиотеки. Есть длинное объяснение того, как мы принимаем решение по этому вопросу.

Почему в программах должно быть сказано “версия 2 GPL или любая более поздняя версия”?
Время от времени, с интервалом в несколько лет, мы вносим изменения в GPL — иногда для пояснения ее, иногда для разрешения определенного рода применений, ранее не разрешенных, а иногда для усиления требований. (Последнее изменение было в 1991 году.) Применение этого “косвенного указателя” в каждой программе делает возможным для нас изменять условия распространения всего собрания программ GNU, когда мы обновляем GPL.

Если бы в каждой программе отсутствовал косвенный указатель, мы были бы вынуждены обсуждать каждое изменение по полной программе с многочисленными правообладателями, что было бы фактически невозможно. На практике не было бы никакой возможности получить унифицированные условия распространения для программ GNU.

Предположим, в программе сказано “версия 2 GPL или любая более поздняя версия”, и выпускается новая версия GPL. Если новая версия GPL дает дополнительное разрешение, это разрешение будет немедленно доступно всем пользователям программы. Но если в новой версии GPL есть более жесткое требование, оно не ограничит применение текущей версии программы, потому что ее по-прежнему можно будет использовать на условиях версии 2 GPL. Когда в программе сказано “версия 2 GPL или любая более поздняя версия”, пользователям всегда будет разрешено применять программу и даже изменять ее в соответствии с требованиями версии 2 GPL — даже после того, как станут доступны более поздние версии.

Если применительно к существующим программам более жесткое требование в новой версии GPL соблюдать не обязательно, то какая от этого польза? Как только станет доступной версия 3 GPL, разработчики большинства программ под GPL выпустят очередные версии своих программ с указанием “версия 3 GPL или любая более поздняя версия”. Тогда пользователям придется следовать более жестким требованиям версии 3 GPL в отношении к последующим версиям программы.

Однако разработчики не обязаны делать это; разработчики могут продолжить разрешать пользоваться предыдущей версией GPL, если для них это предпочтительно.

Почему вы не применяете GPL для руководств?
Для руководства GPL применять можно, но Лицензия свободной документации GNU (GFDL) для них гораздо лучше.

GPL была составлена для программ; она содержит множество сложных пунктов, которые жизненно важны для программ, но были бы обременительны и не нужны для книги или руководства. Например, каждый публикующий книгу или статью должен был бы либо поставлять “исходный текст” книги на машинном носителе с каждой типографской копией, либо предоставлять письменное предложение выслать “исходный текст” позднее.

В то же время в GFDL есть пункты, которые помогают издателям свободных руководств получать выгоду от продажи копий — тексты для обложки, например. Особые правила о “разделах одобрений” позволяют применять GFDL для официального стандарта. В этом случае измененные версии были бы разрешены, но их нельзя было бы отмечать как “стандарт”.

Используя GFDL, мы разрешаем изменять текст руководства, который относится к его технической стороне. Важно иметь возможность изменять технические части, потому что те, кто изменяет программу, должны соответственно изменять документацию. Свобода делать это — этический императив.

Наши руководства включают также разделы, которые провозглашают нашу политическую позицию в отношении свободного программного обеспечения. Мы отмечаем их как “неизменные”, так что их нельзя модифицировать или удалять. В GFDL создаются условия для таких “неизменных разделов”.

Применима ли GPL к шрифтам?
Лицензирование шрифтов — сложный вопрос, который требует серьезного рассмотрения. Мы приводим экспериментальное, но одобренное для общего применения лицензионное исключение. Мы будем рады предложениям на эту тему — пожалуйста, прочтите этот разъяснительный очерк и напишите по адресу: <licensing@gnu.org>.

Чтобы использовать это исключение, добавьте этот текст к замечанию о лицензии в каждый файл пакета (по возможности) в конце текста, где говорится о том, что файл распространяется по GNU GPL:

Как особое исключение, если вы создаете документ, который пользуется этим шрифтом, и встраиваете этот шрифт или неизмененные части этого шрифта в этот документ, этот шрифт сам по себе не приводит к тому, что на получающийся в результате документ распространяется Стандартная общественная лицензия GNU. Если вы изменяете этот шрифт, вы можете распространить это исключение на вашу версию шрифта, но вы не обязаны это делать. Если вы не желаете делать это, удалите замечание об этом исключении из вашей версии.

Я пишу систему поддержки сайта (называемую некоторыми “системой управления контентом”) или какое-то другое приложение, создающее страницы для сайта из шаблонов. Какую лицензию мне использовать для этих шаблонов?

Значение шаблонов достаточно мало, чтобы не было смысла применять авторское лево для их защиты. Как правило, применение авторского лева для небольших работ безвредно, но шаблоны — случай особый, потому что они комбинируются с данными, предоставляемыми пользователем приложения, и распространяется эта комбинация. Поэтому мы рекомендуем вам лицензировать свои шаблоны на простых неограничительных условиях.

Из некоторых шаблонов вызываются функции на языке Javascript. Поскольку программы на Javascript часто нетривиальны, для них имеет смысл применять авторское лево. Поскольку шаблоны будут комбинироваться с данными пользователя, возможно, что шаблоны+данные пользователя+Javascript будут считаться единой работой с точки зрения авторского права. Необходимо провести черту между программами на Javascript (с авторским левом) и текстом пользователя (обычно под несовместимыми условиями).

Схема описанного выше

Вот исключение для программ на Javascript, которое это делает:

Как особое исключение из GPL, любой файл HTML, который просто вызывает функции из этой программы и включает ее в этих целях посредством ссылки, должен считаться отдельной работой с точки зрения авторского права. В дополнение, правообладатели этой программы дают вам разрешение комбинировать тексты этой программы со свободными библиотеками, выпускаемыми под GNU LGPL. Вы можете копировать и распространять такую систему, следуя требованиям GNU GPL для текстов этой программы и LGPL для библиотек. Если вы модифицируете эту программу, вы можете распространить это исключение на вашу версию программы, но вы не обязаны делать это. Если вы не желаете это делать, удалите замечание об этом исключении из своей версии.

Могу я выпустить программу, которую я разработал с помощью несвободных средств, под GPL?
То, с помощью каких программ вы привыкли редактировать исходный текст, компилировать, исследовать или записывать его, обычно не имеет значения для вопросов, связанных с лицензированием этого исходного текста.

Однако если вы подключаете к исходным текстам несвободные библиотеки, это было бы проблемой, которую необходимо решить. Это не исключает выпуска исходного текста под GPL, но если библиотеки не попадают под исключение “системных библиотек”, вам нужно добавить явное примечание с разрешением подключать их к вашей программе. ФСПО может вас проконсультировать по этому вопросу.

Существуют ли переводы GPL на другие языки?
Было бы полезно иметь тексты GPL не только на английском языке. Переводы даже делали и присылали нам. Но мы не осмелились одобрить их как официально действительные. Это сопряжено с риском, настолько большим, что мы не берем на себя смелость принять его.

Юридический документ в некотором смысле подобен программе. Перевод его сходен с переводом программы с одного языка и операционной системы на другой. Это может делать только юрист, компетентный в обоих языках — и даже тогда есть опасность внесения ошибки.

Если бы мы собирались одобрить (официально) перевод GPL, нам пришлось бы предоставить всем разрешение на все то, что им разрешено в переводе. Если перевод полностью точен, это не страшно. Но если в переводе есть ошибка, результаты могли бы привести к катастрофе, последствий которой мы не смогли бы исправить.

Если в программе есть ошибка, мы можем выпустить новую версию, и когда-нибудь старая версия более или менее исчезнет. Но после того, как мы дали всем разрешение действовать в соответствии с конкретным переводом, у нас нет способа взять разрешение назад, если мы обнаружим, впоследствии, что в нем была ошибка.

Отзывчивые люди иногда предлагают проделать эту работу по переводу для нас. Если бы проблема была в том, чтобы найти кого-нибудь, кто бы сделал это, она была бы решена. Но в действительности проблема заключается в возможности ошибки, и предложение проделать эту работу не снимает этого риска. Мы не могли бы признать официальным перевод, сделанный неюристом.

Таким образом, в настоящее время мы не объявляем переводов GPL глобально действительными и обязывающими. Вместо этого мы делаем две вещи:

  • Отсылаем людей к неофициальным переводам. Это значит, что мы разрешаем делать переводы GPL, но мы не объявляем их юридически действительными и обязывающими.

    Такой перевод не имеет юридической силы, и это должно быть в нем явно сказано. Он должен быть помечен таким образом:

    Это неформальный перевод GPL, он не был официально одобрен Фондом свободного программного обеспечения как действительный. Чтобы полностью удостовериться в том, что разрешено, сверьтесь с оригинальным текстом GPL (на английском).

    Но неофициальный перевод может служить указанием на то, как следует понимать английскую GPL. Для многих пользователей этого достаточно.

    Однако предприятия, применяющие программы GNU в коммерческой деятельности, и люди, занимающиеся публичным распространением по FTP, должны обязательно сверяться с английской GPL, чтобы быть уверенными в том, что именно она допускает.

  • Публикация переводов, действительных только в одной стране.

    Мы обдумываем мысль о публикации переводов, которые официально действительны только в одной стране. Таким образом, если будет ошибка, ее последствия будут ограничены этой страной, и ущерб не будет слишком велик.

    Создание перевода все-таки потребует значительного опыта и труда сочувствующего и способного юриста, так что мы не можем обещать скорого появления таких переводов.

Если лицензия интерпретатора языка программирования несовместима с GPL, могу ли я выполнять на нем программы под GPL?
Когда интерпретатор только интерпретирует язык, ответ положителен. Для интерпретатора интерпретируемая программа — это просто данные; GPL не ограничивает того, какими средствами вы обрабатываете программу.

Однако когда интерпретатор расширяется, чтобы предоставить “привязки” к другим средствам (часто, но не обязательно, это библиотеки), то интерпретируемая программа фактически связывается со средствами, которыми она пользуется с помощью этих привязок. JNI (Java Native Interface) — пример такого средства; библиотеки, доступ к которым осуществляется таким образом, динамически связываются с программами на Java, которые вызывают их процедуры.

Итак, если эти средства выпускаются по несовместимой с GPL лицензии, ситуация подобна соединению любым другим способом с библиотекой, несовместимой с GPL. Это подразумевает, что:

  1. Если вы пишете программу и выпускаете ее под GPL, вы можете сформулировать явное исключение, дающее разрешение соединять ее с этими несовместимыми с GPL средствами.
  2. Если вы написали и выпустили программу по GPL, и вы составили ее специально для работы с этими средствами, люди могут принять это как неявное исключение, разрешающее им связывать программу с этими средствами. Но если ваше намерение таково, лучше выразить это явно.
  3. Вы не можете ни взять программы кого-то другого, выпущенные под GPL, ни добавлять к ним такие исключения. Исключение могут добавить только правообладатели этих программ.
Кто вправе требовать соблюдения GPL?
Поскольку GPL — лицензионный договор на использование объектов авторского права, то правообладатели программы — это те, кто вправе требовать соблюдения GPL. Если вы видите нарушение GPL, вам следует информировать разработчиков программы, в отношении которой оно допущено. Они либо являются правообладателями, либо связаны с ними. Подробнее о том, как сообщать о нарушениях, описано в ответе на другой вопрос.
Если в таком объектно-ориентированном языке, как Java, я использую класс под GPL без изменений и образую из него подкласс, каким образом GPL влияет на более крупную программу?
Образование подкласса является созданием производного произведения. Следовательно, условия GPL распространяются на всю программу, в которой вы создаете подкласс класса под GPL.
Если я переношу свою программу на GNU/Linux, значит ли это, что мне необходимо выпустить ее как свободную программу под GPL или другой лицензией свободных программ?
Вообще говоря, нет — это не является юридическим требованием. В конкретном случае это зависит от того, какими библиотеками вы хотите пользоваться и каковы их лицензии. Большинство системных библиотек используют либо Меньшую GPL, либо GNU GPL с исключением, разрешающим соединение библиотеки с чем угодно. Эти библиотеки можно применять в несвободных программах; но в случае с Меньшей GPL некоторые требования в лицензии есть, и вы должны им следовать.

Некоторые библиотеки выпускаются только по GNU GPL; вы должны пользоваться лицензией, совместимой с GPL, чтобы применять эти библиотеки. Но это, как правило, более специализированные библиотеки, и на другой платформе у вас не было бы ничего очень похожего на них, так что вы вряд ли захотите применять эти библиотеки, когда просто переносите программу.

Конечно, ваша программа не пойдет на пользу нашему сообществу, если она не свободна, и кто ценит свою свободу, откажется от пользования ею. Только тот, кто готов покончить со своей свободой, будет пользоваться вашей программой, а это значит, что она фактически будет функционировать как стимул для людей потерять свою свободу.

Если вы надеетесь когда-нибудь оглянуться на свой жизненный путь и почувствовать, что вы сделали вклад в развитие порядочного и свободного общества, то свои программы вам нужно делать свободными.

Мне только что стало известно, что у одной компании есть копия программы под GPL, и чтобы получить ее, нужно платить деньги. Не нарушают ли они GPL, не делая ее доступной по Интернету?
Нет. GPL ни от кого не требует, чтобы для распространения использовался Интернет. Лицензия также не требует ни от кого конкретно заниматься распространением программы. И (кроме одного особого случая) даже если кто-то действительно решит когда-то передать программу, в GPL не сказано, что он должен передать копию конкретно вам или какому-то другому конкретному лицу.

Что GPL требует — это чтобы у него была свобода передать копию вам если он этого пожелает. Как только правообладатель копию программы кому-то передал, этот кто-то может передавать программу вам или кому бы то ни было еще, как только он сочтет нужным.

Могу я выпускать программу под лицензией, в которой сказано, что ее измененные версии распространять под GPL можно, а саму первоначальную версию — нельзя?
Нет. Такая лицензия противоречила бы самой себе. Давайте посмотрим, какие последствия это имело бы для меня как пользователя.

Предположим, что я начинаю с первоначальной версии (назовем ее версией А), добавляю некоторый текст (представим себе, что это 1000 строк) и выпускаю измененную версию (назовем ее Б) под GPL. В GPL сказано, что всякий может изменить версию Б и выпустить результат под GPL. Итак, я (или кто-то другой) может удалить эти 1000 строк, получив версию В, текст которой в точности совпадает с текстом версии А, но которая распространяется по GPL.

Если вы пытаетесь заблокировать этот ход, явно указывая в лицензии, что мне нельзя воспроизводить что-то идентичное версии А под GPL, удалив те строки из версии Б, то лицензия фактически говорит, что я не могу полностью использовать версию Б всеми способами, разрешенными GPL. Другими словами, эта лицензия в действительности не позволяет пользователю выпускать модифицированную версию, такую, как Б, под GPL.

Является ли распространением передача копии в контролируемое дочернее предприятие?

Является ли “распространением” передача копии в такое дочернее предприятие или из него — вопрос, который в каждом случае следует решать в рамках авторского права соответствующей юрисдикции. GPL не отменяет и не может отменять местных законов. Позиция авторского права США на этот счет не вполне ясна, но фактически это не считается распространением.

Если в какой-то стране это считается распространением и дочернее предприятие должно получить право перераспространять программу, то на практике никакой разницы не будет. Дочернее предприятие контролируется фирмой-учредителем; независимо от того, есть у нее права или нет, она не будет распространять программу, если только фирма-учредитель не захочет этого.

Можно ли в программе установки просить людей нажать кнопку в знак согласия с GPL? Если я получаю какую-то программу по GPL, требуется ли от меня соглашаться с чем бы то ни было?

В некоторых системах пакетирования программ есть место, где от вас требуют нажать на кнопку или каким-то другим образом изъявить согласие с условиями GPL. Это не требуется, но и не запрещено. И с нажатием, и без него правила GPL остаются одними и теми же.

Простое согласие с GPL не налагает на вас никаких обязательств. От вас не требуется согласие с чем бы то ни было для простого пользования программой, которая лицензирована по GPL. Обязательства появляются у вас только в случае, если вы изменяете или распространяете программу. Если вас на самом деле беспокоит процедура нажатия, то вам ничто не мешает перелатать программу под GPL, чтобы обойти это.

Мне хотелось бы объединить программу под GPL с некоторого рода программой установки. Должна ли у этой программы установки быть лицензия, совместимая с GPL?

Нет. Программа установки и файлы, которые она устанавливает — это раздельные работы. Поэтому условия GPL не распространяются на программу установки.