Что в GPLv3 означает “Программа”?
Резюме
В версии 3 Стандартной общественной лицензии GNU (GPLv3) слово “Программа” означает ту конкретную работу, которую лицензируют по GPLv3 и которую конкретный лицензиат получает от лицензиара или распространителя. “Программа” — это конкретная программная работа, которую вы получили в данном акте лицензирования по GPLv3, в том виде, в каком вы ее получили.
“Программа” не может означать “все работы, когда-либо лицензированные по GPLv3”; такое толкование бессмысленно, потому что “Программа” стоит в единственном числе: те многочисленные различные программы не составляют одну программу.
В частности, это относится к условию абзаца 3 GPLv3 из раздела 10, в котором сказано:
[В]ы не можете подавать в суд заявление (в том числе перекрестное или встречное обвинение в суде) о том, что какой-либо пункт патента нарушается фактом изготовления, применения, продажи, предложения продажи или импорта Программы или любой ее части.
Это условие, которое ограничивает возможности лицензиата подавать в суд на конкретную программу под GPLv3, полученную им, за нарушение патента. В нем не говорится о ситуации, в которой сторона-лицензиат программы А, распространяемой по GPLv3 (но не другой программы под GPLv3 Б, не связанной с А), подает в суд за нарушение патента на программу Б. Если эта сторона является лицензиатом как А, так и Б, она потенциально утрачивала бы права на Б, но не на А.
Поскольку патенты на программы несправедливо ставят под угрозу всех разработчиков, всех распространителей и всех пользователей программ, мы упразднили бы их, если бы могли. И действительно, мы боремся за это. Но мы считаем, что было бы более чем нецелесообразно доходить до того, чтобы в лицензии любой программы под GPL требовать обещания никогда не нападать ни на какую программу под GPL.
Подробный анализ
GPLv3 определяет “Программу” следующим образом:
“Программа” означает любую работу, на которую распространяется авторское право, лицензируемую по этой Лицензии.
Некоторые утверждали, что это определение можно читать как означающее все работы, лицензированные по GPLv3, а не конкретную работу, полученную лицензиатом в контексте данного лицензирования. Эти читатели выражали особую озабоченность последствиями такого толкования новых условий GPLv3 о патентах, особенно условием из третьего абзаца раздела 10 о прекращении действия лицензии, связанном с патентами, и явным предоставлением патентной лицензии, осуществляемым дальнейшими соразработчиками согласно третьему абзацу раздела 11. Это чрезмерно широкое толкование слова “Программа” неверно и противоположно тому, что мы имели в виду, когда писали GPLv3.
Слово “любой” в английском может принимать многие тонко различающиеся оттенки значения. В некоторых контекстах “любой” означает “каждый” или “всякий”; в других, в том числе в определении “Программы” в GPLv3, оно предполагает “один конкретный экземпляр, выбранный из многих возможностей”. Эта изменчивость должна устраняться контекстом. Этот контекст ее устраняет, но требует некоторых размышлений.
Мы могли бы сформулировать определение “Программы” по-другому, например, употребив слово “конкретная” вместо “любая”, но это не устранило бы необходимости размышлений. Фраза “конкретная работа, лицензируемая по этой Лицензии”, взятая сама по себе, не обязательно обозначала бы эту конкретную работу, получаемую конкретным “Вы” в конкретном акте лицензирования или распространения. Наш обзор других лицензий свободных программ показывает, что при их толковании возникают сходные проблемы из-за слов общего указания, употребляемых для облегчения повторного использования лицензии.
Если принять во внимание, что ни один из вариантов не достаточно однозначен, чтобы исключить все другие потенциальные значения, то у варианта “любой” есть преимущества. Это несколько более неформальное и менее канцелярское выражение, чем возможные альтернативы, что подходит для разработчиков, читающих и применяющих лицензию. Более того, применение слова “любой”, из-за того, что оно предполагает выбор из многих удовлетворяющих условию программ, подчеркивает возможность повторного использования GPLv3 для многих программных работ и во многих ситуациях лицензирования. GNU GPL предназначена для применения в программах многими разработчиками, и это тоже должно быть ясно.
То же самое употребление слова “любой”, которое вызвало беспокойства по поводу толкования в GPLv3, существует в GPLv2, в соответствующем определении. Раздел 0 GPLv2 гласит:
Эта лицензия распространяется на любую программу или другую работу, которая содержит уведомление, размещенное правообладателем, в котором сказано, что ее можно распространять на условиях этой Стандартной общественной лицензии. Ниже “Программа” означает любую такую программу или работу, а “производное от программы произведение” означает либо Программу, либо любое производное произведение в терминах авторского права...
Однако ФСПО и другие члены сообщества пользователей GPL всегда подразумевали, что “Программа” в GPLv2 означает конкретное произведение, лицензируемое по GPL и полученное вами, до того как вы вносите в него любые возможные изменения. Предполагается, что определение “Программы” в GPLv3 будет сохранять это значение.
Мы не можем найти в GPLv3 пункта, в котором применение предложенного широкого толкования “Программы” (и ее надмножества, “работы, на которую распространяется лицензия”) имело бы смысл или было бы сколько-нибудь практически значимо, согласовываясь с формулировкой этого пункта и историей его составления. Патентные оговорки в GPLv3 не представляют исключения.
Третий абзац раздела 11 гласит:
Каждый соразработчик предоставляет вам неисключительную всемирную бесплатную патентную лицензию на изготовление, продажу, предложение продажи, импорт и другие способы выполнения, изменения и передачи содержимого его, соразработчика, версии; эта патентная лицензия действует по всему миру и распространяется на все существенные пункты патентов соразработчика.
“Соразработчик” определяется как “правообладатель, который санкционирует на условиях этой Лицензии применение Программы или произведения, производным от которого является Программа”.
Нам указывали на то, что широкое толкование “Программы” приведет к предоставлению чрезмерно широкой патентной лицензии, поскольку для данного лицензиата GPLv3 множество соразработчиков, предоставляющих патентные лицензии, становится множеством всех лицензиаров всех произведений, выпущенных в мире под GPLv3, а не просто множеством лицензиаров конкретной работы, полученной лицензиатом в конкретном акте лицензирования.
Внимательное рассмотрение формулировки того, как предоставляется патентная лицензия, показывает, однако, что эти опасения беспочвенны. Чтобы осуществлять то, что разрешает патентная лицензия, у лицензиата GPLv3 должно быть во владении “содержимое версии соразработчика”. Если это так, то он обязательно является получателем этого материала, лицензированного ему по GPLv3.
Следовательно, соразработчики всегда являются фактическими лицензиарами авторских прав на материал, на который предоставляется патентная лицензия. Лицензиат, пользующийся предоставляемой патентной лицензией, в конечном счете получил материал, на который распространяется патентная лицензия этих соразработчиков. В противном случае предоставление патентной лицензии было бы бессмысленным, потому что осуществление данных ею разрешений связывается с “версией соразработчика”. Соразработчики и лицензиат патентной лицензии раздела 11 вступают в отношение прямого и косвенного распространения. Следовательно, абзац 3 раздела 11 не требует, чтобы вы предоставляли патентную лицензию никому, кто не является одновременно лицензиатом ваших авторских прав. (Перераспространители, не являющиеся соразработчиками, остаются в рамках соответствующей доктрины неявной патентной лицензии и особо оговоренного “автоматического распространения” абзаца 6 раздела 11.)
Точно так же нет оснований для широкого толкования “Программы”, когда рассматривается патентный пункт третьего абзаца раздела 10. Согласно этому пункту,
[В]ы не можете подавать в суд заявление (в том числе перекрестное или встречное обвинение в суде) о том, что какой-либо пункт патента нарушается фактом изготовления, применения, продажи, предложения продажи или импорта Программы или любой ее части.
В сочетании с предоставлением патентной лицензии в абзаце 3 раздела 11 и пунктом о прекращении действия из раздела 8, этот пункт раздела 10 ведет к условию прекращения действия патентной лицензии в обстоятельствах, сходных с описанными в версии 2.0 Лицензии Apache.
ФСПО сочувствует намерениям, с которыми в некоторых лицензиях свободных программ добавлены пункты о широких ответных мерах в отношении патентов, поскольку упразднение патентов на программы весьма желательно. Однако мы считаем, что пункты о широких ответных мерах в отношении патентов едва ли принесут пользу сообществу, в особенности те пункты, которые могут вступать в действие в случае патентных разбирательств, касающихся других программ, не связанных с программами, лицензия которых прекращается. Мы были очень осмотрительны, когда предпринимали шаги по включению ответных мер в отношении патентов в GPLv3, и абзац 3 раздела 10 преднамеренно сделан более узким, чем пункты об ответных мерах в отношении патентов в нескольких других хорошо известных лицензиях, в частности, в Общественной лицензии Mozilla версии 1.1, касательно прекращения патентных лицензий.
Если бы предложенное толкование “Программы” действовало в абзаце 3 раздела 10, то результатом было бы радикальное отступление от наших прежних однозначных заявлений и правил об ответных мерах в отношении патентов, чего мы никоим образом не имели в виду.
Остальной текст в версии 3 GPL свидетельствует о тех же правилах. Пункт о патентных разбирательствах в разделе 10 был добавлен в Рабочей редакции 3 GPLv3 как замена части пункта 7(b)(5) (в Рабочей редакции 2). Пункт 7(b)(5) допускал размещение двух категорий оговорок о прекращении патентных лицензий для работ под GPLv3:
условия, при которых полностью или частично прекращается или допускается прекращение разрешения пользоваться материалом, на который они распространяются, для пользователя, который начинает судебный процесс о патентах (то есть процесс, в котором утверждается, что некоторая программа нарушает патент), причем этот процесс не начат как ответный процесс или защита от другого, начатого ранее, разбирательства по вопросу патентов на программы, или в котором предположительно нарушающая патент программа включает некоторый материал, на который распространяется Лицензия, возможно, в сочетании с другими программами...
Раздел 7 не устанавливает правила собственно GPL: вместо этого в нем говорится, насколько далеко могут заходить другие совместимые лицензии. Таким образом, этот текст в разделе 7 не устанавливал бы широких ответных мер в отношении патентов; он только допускал бы сочетание программ под GPL с другими лицензиями, в которых такие широкие ответные меры в отношении патентов предпринимаются.
Тем не менее, как объяснялось в Пояснительной записке к Рабочей версии 3, такие широкие ответные меры подверглись критике, потому что они могли распространяться на разбирательства о патентах на программы, в которых обвиняемые программы никак не связаны с программами, составляющими предмет лицензии. Ввиду того, что не было никаких широко применяемых лицензий, с которыми это позволяло бы достичь совместимости, в Рабочей версии 3 мы опустили широкие ответные меры в отношении патентов из диапазона совместимости с GPL.
Мы сделали это, заменив 7(b)(5) на текст в разделе 10, в котором мы оставили только то, что соответствовало второй категории случаев. Первая категория, таким образом, снова стала несовместимым с GPL “дальнейшим ограничением” в Рабочей версии 3, точно так же как в версии 3 GPL в том виде, в каком она была реально опубликована.