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

GPLv3: краткое руководство

[эмблема GPLv3]

[Оригинал статьи доступен также в формате PDF и в исходном формате.]


Через полтора года открытых консультаций, тысяч замечаний и четырех предварительных редакций 29 июня 2007 года была окончательно опубликована версия 3 Стандартной общественной лицензии GNU (GPLv3). Хотя с момента появления первой редакции лицензия много обсуждалась, не многие говорили о выгодах, которые она предоставляет разработчикам. Чтобы восполнить этот пробел, мы опубликовали это руководство. Сначала напомним вкратце о том, что такое свободные программы, авторское лево и каковы цели GPL. Затем рассмотрим важные изменения в лицензии, чтобы понять, как они служат этим целям и чем полезны разработчикам.

Основы GPL

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

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

Когда программа предлагает пользователям все эти свободы, мы называем ее свободной программой.

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

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

  • Тивоизация. Некоторые компании создали всевозможного рода устройства, которые выполняют программы под GPL, а затем перекроили аппаратуру так, чтобы они могли изменять программы, которые на ней выполняются, а вы — не могли. Если устройство может выполнять произвольные программы, то это — компьютер общего назначения, и его владелец должен контролировать, что этот компьютер делает. Когда устройство не дает вам делать это, мы называем это тивоизацией.
  • Законы, запрещающие свободные программы. Такие законодательные акты, как Закон об авторском праве цифрового тысячелетия и Директива об авторском праве Европейского союза, делают преступлением написание и обмен программами, которые могут взломать цифровое управление ограничениями (См. ниже). Эти законы не должны ущемлять прав, которые вам предоставляет GPL.
  • Дискриминационные патентные соглашения. Недавно компания Microsoft начала рассказывать людям, что она не собирается преследовать пользователей свободных программ за нарушения патентов — до тех пор, пока вы получаете эти программы от поставщика, который платит Microsoft за эту привилегию. В конечном счете Microsoft пытается собирать отчисления за пользование свободными программами, что ущемляет свободу пользователей. Ни у какой компании не должно быть возможности делать это.

В версию 3 внесено также некоторое число улучшений для того, чтобы всем было легче понимать лицензию и пользоваться ею. Но при всех этих изменениях GPLv3 не является радикально новой лицензией; напротив, это результат эволюции предыдущей версии. Хотя многое в тексте изменилось, большая часть изменений просто поясняет то, что сказано в GPLv2. Принимая это во внимание, давайте рассмотрим серьезные изменения в GPLv3 и поговорим о том, чем они улучшают лицензию для пользователей и разработчиков.

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

Вы, вероятно, знакомы с цифровым управлением ограничениями на DVD и других носителях. Вы, вероятно, также знакомы с законами, которые делают незаконным написание собственных средств для обхода этих ограничений, такими, как Закон об авторском праве цифрового тысячелетия и Директива об авторском праве Европейского союза. Никто не должен быть в состоянии помешать вам писать какие вам угодно программы, и GPLv3 защищает это ваше право.

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

Как обычно, GNU GPL не ограничивает того, что люди делают с программами; она только не дает им ограничивать других.

Защита вашего права дорабатывать

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

Сфера действия этого требования ограничена. Распространителям по-прежнему позволяется применять криптографические ключи в любых целях, и от них требуется открывать ключ, только если он вам нужен, чтобы изменить программы под GPL на устройстве, которое они вам дали. Проект GNU сам пользуется GnuPG для подтверждения целостности всех программ на своем сайте FTP, и подобного рода меры выгодны пользователям. GPLv3 не заставляет людей прекратить пользоваться криптографией; мы не хотели бы, чтобы так было. Лицензия только заставляет людей прекратить забирать у вас права, которые она предоставляет — с помощью ли патентного права, техники или любых других средств.

Более сильная защита от патентных угроз

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

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

Пояснение о совместимости лицензий

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

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

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

Новые совместимые лицензии

В дополнение к разъяснению правил о лицензиях, уже совместимых с GPL, в GPLv3 также введена совместимость с несколькими новыми лицензиями. Важнейший пример — версия 2.0 лицензии Apache. На условиях этой лицензии доступна масса замечательных свободных программ, вокруг которых собрались мощные сообщества. Мы надеемся, что это изменение в GPLv3 будет способствовать росту сотрудничества и обмена внутри сообщества свободного программного обеспечения. Нижеприведенная схема иллюстрирует некоторые распространенные отношения совместимости между разными лицензиями свободных программ:

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

Стрелки, направленные от одной лицензии к другой, показывают, что первая лицензия совместима со второй. Это верно, даже если для того, чтобы перейти от одной лицензии к другой, нужно пройти по нескольким стрелкам. Например, лицензия ISC совместима с GPLv3. GPLv2 совместима с GPLv3, если программа позволяет вам выбрать “любую более позднюю версию” GPL, что верно для большинства программ, выпускаемых под этой лицензией. Эта диаграмма не подробна (более полный список лицензий, совместимых с GPLv2 и GPLv3 см. на нашей странице лицензий); она просто показывает, что GPLv3 совместима почти со всем, с чем совместима GPLv2, и еще кое с чем.

Заодно была написана GNU GPL Афферо версии 3. Первоначальная GPL Афферо была составлена так, чтобы гарантировать, что все пользователи приложения для Интернета смогут получить его исходный текст. Версия 3 GNU GPL Афферо расширяет эту задачу: она применима к любым взаимодействующим по сети программам, так что она хорошо подойдет для таких программ, как игровые серверы. Кроме того, дополнительное условие более гибко, так что если кто-то пользуется исходным текстом под AGPL в приложении без связи с сетью, то ему придется предоставлять исходный текст только таким образом, каким всегда требовалось по GPL. Сделав эти две лицензии совместимыми, разработчики взаимодействующих по сети программ получают возможность усилить свое авторское лево, продолжая в то же время опираться на развитый корпус доступных для них исходных текстов под GPL.

Разработчикам: больше способов предоставить исходный текст

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

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

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

Нужно распространять меньше исходных текстов: новое исключение для системных библиотек

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

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

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

Глобальная лицензия

GPLv2 много говорит о “распространении” — когда вы обмениваетесь программой с кем-нибудь, вы распространяете ее. Нигде в лицензии не сказано, что такое распространение, потому что этот термин был заимствован из авторского права Соединенных Штатов. Мы ожидали, что судьи будут брать определение оттуда. Однако позднее мы узнали, что в авторском праве других стран употребляется то же слово, но в других значениях. Из-за этого судья в такой стране мог бы проводить анализ GPLv2 не так, как судья в Соединенных Штатах.

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

Когда нарушают правила: ровная дорога к соблюдению

Согласно GPLv2, если вы каким бы то ни было образом нарушили лицензию, то вы автоматически и навсегда утратили свои права. Единственный способ снова получить их — обратиться с просьбой к правообладателю. Хотя сильная защита от нарушений очень ценна, это правило могло вызвать много головной боли, когда кто-нибудь случайно преступал границы дозволенного. Просить всех правообладателей о формальном возобновлении лицензии могло быть обременительно и накладно: типичный дистрибутив GNU/Linux построен на работе тысяч людей.

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

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

Наконец, самое главное

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

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

Если вы хотите узнать больше о переводе своего проекта на GPLv3, Лаборатория лицензирования ФСПО с радостью вам поможет. На gnu.org и fsf.org вы найдете основные указания по применению лицензии и Ответы на общие вопросы о ней, которыми интересуются люди. В более сложной ситуации обращайтесь, пожалуйста, к нам, и мы сделаем все возможное, чтобы помочь вам в переходе. Вместе мы поможем защитить свободу всех пользователей.