Общественная лицензия Netscape
Ричард СтолменПервоначальная версия этой статьи была написана в марте 1998 года о черновой редакции NPL. Нашей первой статьей на эту тему была “Netscape рассматривает возможность сделать браузер Netscape свободной программой”.
Общественная лицензия Netscape, или NPL, в том виде, в каком она в конце концов была составлена в 1998 году, является лицензией свободных программ; но в ней есть три серьезных упущения. Во-первых, она содержит плохое с философской точки зрения заявление, во-вторых, она ставит сообщество свободного программного обеспечения в слабое положение, а в-третьих, она создает серьезную практическую проблему внутри сообщества свободного программного обеспечения. Два из этих упущений присущи также Общественной лицензии Mozilla. Из-за этих упущений мы настоятельно просим вас не применять NPL и MPL для своих свободных программ.
1. Не все пользователи равны
Первая проблема, которую я заметил в NPL — что лицензия не дает Netscape и нам, всем остальным, равные права, как это делает GNU GPL. По NPL мы можем пользоваться текстами Netscape только так, как указано в NPL, а Netscape может применять наши изменения как угодно — даже в несвободно лицензированных версиях программы.
Это тонкий вопрос, потому что это не делает программу несвободной. Это положение не мешает нам распространять программу или изменять ее; оно не отказывает нам ни в какой конкретной свободе. Если смотреть с чисто прагматической точки зрения, то это даже не похоже на проблему.
Проблема лежит в более глубоком заявлении, заключающемся в этом условии. Оно отрицает мысль о сотрудничестве между равными, на котором покоится наше сообщество, и утверждает, что работа над свободной программой — это вклад в фирменный программный продукт. Это условие может изменить тех, кто принимает его, и эта перемена не усилит наше сообщество.
Одно из предложений по устранению этой асимметрии — наложить на это временное ограничение (например, три или пять лет). Это сильно улучшило бы положение, потому что ограничение срока сняло бы проблематичное более глубокое заявление.
Практические следствия этого условия минимальны из-за другого недостатка NPL: она не заключает в себе сильного авторского лева. Другими словами, она не прилагает очень больших усилий, чтобы гарантировать, что модификации, сделанные пользователями, будут доступны как свободные программы.
У Общественной лицензии Mozilla (MPL) этой проблемы нет. В этом состоит основное различие между MPL и NPL.
2. Нет авторского лева
NPL оформлена как авторское лево; в ней явно сказано, что все модификации, внесенные пользователями, должны выпускаться под NPL. Но это относится только к модификациям существующих текстов, а не к добавленным подпрограммам, если они размещаются в отдельных файлах. Практически это значит, что при желании легко внести несвободные изменения: достаточно просто поместить основную массу своего текста в отдельный файл и назвать все это вместе “Более Крупным Произведением”. Выпускать по NPL придется только вызовы функций, добавленные в старые файлы, а они сами по себе будут не очень полезны.
Отсутствие настоящего авторского лева — не катастрофа; это не делает программу несвободной. Например, условия распространения X.org даже не пытаются применять авторское лево, и тем не менее программы X.org свободны. Программы BSD тоже свободны и без авторского лева, (хотя у старых условий BSD есть важный недостаток, и им не следует подражать — если вы хотите выпускать свободные программы без авторского лева, пользуйтесь, пожалуйста, вместо них условиями X.org). Программы под NPL — это тоже свободные программы без авторского лева, и это само по себе не делает NPL хуже других лицензий свободных программ без авторского лева.
Однако хотя это не катастрофично, тем не менее это недостаток. А поскольку NPL выглядит как авторское лево, некоторые пользователи могут быть введены в заблуждение и воспользоваться NPL, думая, что они получают выгоды авторского лева по отношению к своим программам, когда на деле это не так. Чтобы избежать таких последствий, нам нужно будет усиленно работать над просвещением людей по этому вопросу, который нелегко объяснить в немногих словах.
3. Несовместима с GPL
Наиболее серьезная практическая проблема NPL — что она несовместима с GNU GPL. Нельзя сочетать тексты, выпущенные под NPL, с текстами, выпущенными под GNU GPL, в одной программе, даже когда связываются раздельные объектные файлы и библиотеки; независимо от того, как это делается, это нарушит одну или другую лицензию.
Это противоречие возникает, потому что GPL серьезно относится к авторскому леву: она составлена, чтобы гарантировать, что все изменения и расширения свободной программы будут свободны. Таким образом, она не оставляет лазейки для того, чтобы сделать изменения несвободными, поместив их в отдельный файл. Чтобы закрыть эту лазейку, GPL не позволяет связывать программу под авторским левом с программами, у которых есть другие ограничения или условия — такие, как NPL.
Несовместимость с GPL не делает программу несвободной; это не приводит к фундаментальной этической проблеме. Но это может создать серьезную проблему для сообщества свободного программного обеспечения, разделив фонд исходных текстов на два корпуса, которые нельзя смешивать. С практической точки зрения эта проблема очень важна.
Это можно устранить, изменив GPL, но это привело бы к отказу от авторского лева — что принесло бы больше вреда, чем пользы. Но проблему можно решить небольшим изменением в NPL (как именно это сделать, см. ниже).
4. Замечание о названиях
NPL означает “Общественная лицензия Netscape (Netscape Public License)”, но GPL не означает “Общественная лицензия GNU”. Полное название нашей лицензии — “Стандартная общественная лицензия GNU (GNU General Public License)”, сокращенно GNU GPL. Иногда “GNU” опускают и пишут просто “GPL”.
(Это не проблема, а просто факт, который вы должны знать.)
Заключение
Поскольку проблема 3 наиболее серьезна, я надеюсь, что люди будут вежливо и разумно объяснять компании Netscape важность ее устранения. Пути к этому есть; им нужно только принять решение об этом.
Вот один из возможных способов разрешить связывать программы под NPL с программами под GPL. Это можно сделать, добавив в NPL следующие два пункта:
A.1. You may distribute a Covered Work under the terms of the GNU General Public License, version 2 or newer, as published by the Free Software Foundation, when it is included in a Larger Work which is as a whole distributed under the terms of the same version of the GNU General Public License. A.2. If you have received a copy of a Larger Work under the terms of a version or a choice of versions of the GNU General Public License, and you make modifications to some NPL-covered portions of this Larger Work, you have the option of altering these portions to say that their distribution terms are that version or that choice of versions of GNU General Public License. (A.1. Вы можете распространять Произведение на условиях Стандартной общественной лицензии GNU версии 2 или более новой, в том виде, в каком она опубликована Фондом свободного программного обеспечения, когда она включается в Более Крупное Произведение, которое в целом распространяется на условиях той же самой версии Стандартной общественной лицензии GNU. A.2. Если Вы получили копию Более Крупного Произведения на условиях одной из версий Стандартной общественной лицензии GNU (или нескольких версий по выбору) и Вы вносите изменения в некоторые части этого Более Крупного Произведения, распространяемые по NPL, то при желании Вы можете изменить эти части, чтобы в них было сказано, что условиями их распространения является та версия Стандартной общественной лицензии GNU (или набор версий по выбору). )
Это позволяет сочетать тексты под NPL с текстами под GPL и распространять объединенное произведение на условиях GNU GPL.
Это разрешает людям выпускать модификации таких объединенных произведений на условиях GNU GPL — но легче всего их выпускать под NPL.
Когда люди пользуются пунктом A.2, их изменения будут выпускаться только на условиях GNU GPL; эти изменения не будут доступны Netscape для применения в несвободных версиях. Разумеется, компанию Netscape это не порадовало бы.
Однако NPL дает разработчикам несвободных программ простой способ сделать их изменения полностью недоступными для Netscape: поместить их в отдельные файлы и назвать все это вместе “Более Крупным Произведением”. На самом деле для них это проще, чем воспользоваться пунктом A.2 для пользователей GPL.
Если Netscape полагает, что может мириться с беспокойствами, связанными с (фактически) несвободными модификациями, то модификации, распространяемые по GPL, доставят, безусловно, гораздо меньше беспокойства. Если Netscape считает, что практические соображения будут поощрять большинство в мире несвободных программ возвращать изменения в компанию Netscape, даже без принуждения, то те же доводы должны убеждать и мир свободных программ. Компании следует признать, что это изменение допустимо, и принять его, чтобы не ставить разработчиков свободных программ перед серьезной дилеммой.