Зачем переходить на GPLv3
Ричард СтолменВыпущена версия 3 Стандартной общественной лицензии GNU (GNU GPL). Это позволяет пакетам свободных программ под GPL версии 2 обновить лицензию. В этой статье объясняется, почему обновить лицензию важно.
Прежде всего важно отметить, что обновление — это выбор. GPL версии 2 останется правомерной лицензией, и никакой катастрофы не произойдет, если некоторые программы останутся под GPLv2, а другие перейдут к GPLv3. Эти две лицензии несовместимы, но это не является проблемой принципиального характера.
Когда мы говорим, что GPLv2 и GPLv3 несовместимы, это значит, что нет законного способа сочетать тексты под GPLv2 с текстами под GPLv3 в единой программе. Это происходит потому, что как GPLv2, так и GPLv3 являются лицензиями с авторским левом: в каждой из них сказано: “Если вы включаете тексты под этой лицензией в более крупную программу, то эта более крупная программа тоже должна быть под этой лицензией”. Сделать их совместимыми нельзя никак. Мы могли бы добавить пункт о совместимости с GPLv2 в GPLv3, но это бы не помогло, потому что нужен был бы подобный же пункт в GPLv2.
К счастью, несовместимость лицензий имеет значение, только когда вы хотите компоновать, сводить или сочетать тексты из двух различных программ в единой программе. Можно безо всяких проблем устанавливать рядом программы под GPLv3 и GPLv2 в одной операционной системе. Например, лицензия системы TeX и лицензия Apache несовместимы с GPLv2, но это не мешает нам работать с TeX и Apache в одной системе с Linux, Bash и GCC. Это получается потому, что все они — раздельные программы. Подобным же образом, если Bash и GCC переходят на GPLv3, в то время как Linux остается под GPLv2, никакого конфликта не возникает.
Если программа останется под GPLv2, это не создаст проблем. Переходить на новую лицензию следует из-за существующих проблем, которые решит GPLv3.
Одна из серьезных опасностей, которые предотвращает GPLv3,— тивоизация. Тивоизация означает, что определенная “техника” (внутри которой имеются компьютеры) содержит программы под GPL, которые вы фактически не можете изменять, потому что техника выключается, если обнаруживает измененные программы. Обычная причина тивоизации — то, что в программах есть особенности, которые люди захотят изменить. Производитель знает об этом и намеревается воспрепятствовать людям изменять их. Производители этих компьютеров пользуются свободой, которую предоставляют свободные программы, но не позволяют вам поступать так же.
Некоторые возражают на это, что конкуренции между техникой на свободном рынке должно быть достаточно, чтобы скверные особенности оставались на низком уровне. Возможно, одной конкуренции хватило бы, чтобы избежать произвольных бессмысленных неудобств вроде “должно выключаться между 13:00 и 17:00 каждый вторник”, но даже если это так, возможность выбрать хозяина — это не свобода. Свобода означает, что вы контролируете то, что делают ваши программы, а не только то, что вы можете упрашивать или угрожать кому-то, кто решает за вас.
В критичной области цифрового управления ограничениями — скверных функций, спроектированных для того, чтобы ограничить вас в пользовании данными на своем компьютере — конкуренция бесполезна, потому что соответствующая конкуренция запрещена. По Закону об авторском праве цифрового тысячелетия и подобным ему правовым актам в США и многих других странах распространять проигрыватели DVD противозаконно, если они не ограничивают пользователя в соответствии с правилами заговора DVD (его сайт находится на www.dvdcca.org/, но правила, по-видимому, там не опубликованы). Общество не может отказаться от цифрового управления ограничениями, покупая проигрыватели без него, потому что их нет в продаже. Не имеет значения, сколько продуктов вам предоставляют на выбор — все они снабжены эквивалентными цифровыми наручниками.
GPLv3 гарантирует, что вы вольны снять наручники. Это не запрещает ни цифровое управление ограничениями, ни вообще любого рода особенности. Это не налагает ограничений на существенные функции, которые вы можете добавлять к программе или удалять из нее. Это просто гарантирует, что вы можете точно так же свободно удалить скверные особенности, как поставщик вашей копии мог свободно добавить их. Тивоизация — способ отказать вам в этой свободе; чтобы защитить вашу свободу, GPLv3 запрещает тивоизацию.
Запрет тивоизации распространяется на любой продукт, если следует ожидать, что он будет использоваться потребителями, хотя бы время от времени. GPLv3 допускает тивоизацию только для продуктов, которые предназначены почти исключительно для предприятий и организаций.
Другая угроза, которой противостоит GPLv3 — патентные договоры, подобные пакту “Novell-Microsoft”. Компания Microsoft желает применять тысячи своих патентов, чтобы заставить пользователей платить Microsoft за привилегию работы с GNU/Linux, и заключила этот пакт, пытаясь достичь этого. Договор предлагает довольно ограниченную защиту от патентов Microsoft клиентам Novell.
Компания Microsoft сделала несколько ошибок в договоре с Novell, и GPLv3 составлена так, чтобы обернуть их против Microsoft, расширяя эту ограниченную защиту от патентов на все сообщество. Чтобы воспользоваться этой защитой, программам нужно применять GPLv3.
Юристы Microsoft не глупы, и в следующий раз им, возможно, удастся избежать этих ошибок. Поэтому в GPLv3 сказано, что у них не будет “следующего раза”. Выпуск программы под GPL версии 3 защищает ее от будущих попыток Microsoft заставить распространителей делать сборы в пользу Microsoft с пользователей программы.
GPLv3 также предоставляет пользователям явную защиту от патентных преследований со стороны соразработчиков и распространителей. При GPLv2 пользователи полагаются на неявную патентную лицензию, чтобы гарантировать, что компания, предоставившая им копию, или те, кому они передадут копии, не будут их преследовать за нарушение патентов.
Явная патентная лицензия в GPLv3 не заходит так далеко, как нам хотелось бы. В идеале мы заставили бы всех, кто перераспространяет программы под GPL, отказаться от всех патентов на программы, вместе со всеми теми, кто не перераспространяет программы под GPL, потому что патентов на программы не должно быть вообще. Патенты на программы — порочная и абсурдная система, которая ставит всех разработчиков программ перед опасностью преследований со стороны компаний, о которых они никогда не слышали, а также со стороны мегакорпораций, действующих в этой отрасли. Крупные программы, как правило, сочетают в себе тысячи идей, так что нет ничего неожиданного в том, что они реализуют идеи, на которые выданы сотни патентов. Мегакорпорации собирают тысячи патентов и применяют эти патенты для запугивания более мелких разработчиков. Патенты уже мешают разработке свободных программ.
Единственный способ обезопасить развитие программного обеспечения — упразднить патенты на программы, и мы намерены достичь этого когда-нибудь. Но мы не можем сделать это посредством лицензии на программы. Любую программу, свободную и несвободную, может убить патент на программы в руках постороннего лица, и лицензия программы не в силах предотвратить этого. Только судебные постановления или изменения в патентном праве могут обезопасить развитие программного обеспечения от патентов. Если бы мы попытались сделать это с помощью GPLv3, нам бы это не удалось.
Таким образом, GPLv3 стремится ограничить и урегулировать опасность. В частности, мы попытались спасти свободные программы от того, что хуже смерти: от превращения в фактически несвободную программу посредством патентов. Явная патентная лицензия GPLv3 гарантирует, что компании, применяющие GPL, чтобы дать пользователям четыре свободы, не смогут развернуться и воспользоваться своими патентами, чтобы сказать некоторым пользователям: “К вам это не относится”. Это не позволяет им также сыграться с другими правообладателями патентов, чтобы сделать это.
Дальнейшие преимущества GPLv3 включают в себя лучшую переносимость на международном уровне, более мягкое прекращение действия лицензии, поддержку BitTorrent и совместимость с лицензией Apache. В общем и целом, множество доводов в пользу обновления.
Маловероятно, что после выпуска GPLv3 перемены прекратятся. Если появятся новые угрозы свободе пользователей, нам придется разработать GPL версии 4. Важно гарантировать, что у программ не возникнет трудностей с переходом на GPLv4, если и когда мы ее напишем.
Один из способов достичь этого — выпускать программу под “GPL версии 3 или любой более поздней версии”. Другой способ — назначить для всех, кто работает над программой, посредника, который может решать, переходить ли на будущие версии GPL. Третий способ — сделать так, чтобы все, кто работает над программой, передавали авторские права единому правообладателю, который будет уполномочен обновлять версию лицензии. Так или иначе, программы должны предоставлять эту возможность для будущих версий GPL.