Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #103, ИЮЛЬ 2007 г.

Выбирай лицензию по руке!

Иван Скляров

Хакер, номер #103, стр. 088

(Sklyarov@real.xakep.ru, www.sklyaroff.ru)

Все о лицензиях в мире Open Source

Даже люди далекие от мира *nix что-нибудь да слышали о лицензии GPL. Об этой лицензии много говорят, пишут, обсуждая ее достоинства и недостатки. Но далеко не каждый юниксоид знает, что в мире Open Source, кроме GPL, существуют десятки других лицензий. Кроме того, сама GPL имеет несколько версий и модификаций. Чтобы у тебя не пошла кругом голова от всего этого лицензионного многообразия, я написал этот путеводитель по миру лицензий свободного программного обеспечения. Одновременно мы узнаем, что нового несет самая последняя версия GPLv3.

Что такое лицензия

Давай сначала разберемся с основными терминами и понятиями. Термин «лицензия» в российском законодательстве используется в двух значениях:

1) разрешение компетентного государственного органа на осуществление определенного вида деятельности (из числа видов деятельности, подлежащих обязательному лицензированию);

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

Нас интересует только второе значение. Перефразируя его в нашем контексте, мы получаем следующее: лицензия - это договор (соглашение) между владельцем компьютерной программы и пользователем ее копии. Исторически все лицензии на софт делятся на два класса: лицензии на свободное и на проприетарное программное обеспечение. Проприетарное (от английского proprietary – «собственническое») - это несвободное ПО (такое, как продукты Microsoft). Лицензии на проприетарное программное обеспечение также обозначают аббревиатурой EULA (произносится «юла»), что расшифровывается как End User License Agreement («Лицензионное соглашение конечного пользователя»). Грубо говоря, EULA - это текст, который обычно выводится при инсталляции Windows-программ и снабжен внизу кнопочкой «Я согласен». EULA является полной противоположностью лицензиям на свободное программное обеспечение. Там, где EULA запрещает (копировать, распространять и модифицировать), «свободные» лицензии разрешают. Мы в этой статье, как уже было сказано ранее, будем говорить только о лицензиях на свободное программное обеспечение. При этом «свободное» не значит «бесплатное». Не нужно забывать об этом. Под свободой программного обеспечения подразумевается в первую очередь право получать, распространять и изменять исходный код.

OSI и FSF

В мире свободного программного обеспечения существует два независимых движения: Open Source Initiative (OSI) и GNU Free Software Foundation (FSF), возглавляемое небезызвестным Ричардом Столлманом. Эти два движения по-разному трактуют термины «свободное ПО» (free software) и «ПО с открытыми исходными текстами» (open source).

Давид Уиллер, представитель OSI, употребляет эти термины как синонимы, определяющие одно и то же понятие, но при этом указывает на различие их содержания. В своей статье он пишет: «Те, кто использует термин «ПО с открытыми исходными текстами», хотят подчеркнуть технические преимущества такого ПО (например, большую надежность и безопасность), тогда как те, кто применяет термин «свободное ПО», хотят подчеркнуть независимость от контроля со стороны третьих лиц за использованием ПО».

Представители же FSF считают, что понятие «ПО с открытыми исходными текстами» в целом соответствует понятию «свободного ПО», однако предпочитают использовать именно последний термин, так как, по их мнению, определение open source является слишком узким и некоторые компании-разработчики проприетарного ПО используют определение «открытый исходный текст» в своих целях, придавая ему совсем другой смысл. Как видишь, расхождения в терминах здесь не столь существенны, поэтому в этой статье я буду употреблять словосочетания «свободное программное обеспечение» (free software) и «программное обеспечение с открытыми исходными текстами» (open source) в одном и том же контексте.

Существует еще термин, который объединяет оба движения: FOSS (Free and Open Source Software).

Что такое copyleft

Ричард Столлман различает еще две основные категории лицензий свободного программного обеспечения: copyleft и не copyleft. Английское слово copyleft иногда переводится как «авторское лево» – каламбур от слова «копирайт» (английское copyright — «авторское право»). Лицензии copyleft, такие как GNU GPL, настаивают на том, что измененные версии программы также должны быть свободными программами. Лицензии не copyleft не настаивают на этом. Столлман рекомендует copyleft, поскольку защищает свободу всех пользователей, но в то же время отмечает, что программы без copyleft все же могут быть свободными и полезными для сообщества свободного ПО.

Списки и тексты лицензий на свободное ПО на английском языке можно найти как на сайте Open Source Initiative (http://opensource.org/licenses), так и на сайте GNU (www.gnu.org/licenses/license-list.html). В целом они идентичны, хотя в названиях некоторых лицензий имеются отличия. Понятно, что тексты лицензий GPL, LGPL и прочих предпочтительнее брать с сайта GNU. Однако тексты остальных лицензий лучше взять с сайта OSI. На www.gnu.org/licenses/license-list.html также указаны лицензии, совместимые с GNU GPL.

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

Лицензия MIT

Лицензия MIT разработана Массачусетским технологическим институтом (МТИ) и считается академической лицензией, то есть лицензией для использования в сфере научных разработок. На сайте GNU она имеет название Expat license. Система XFree86 также распространяется под лицензией MIT, которая в этом случае на сайте GNU называется X11 License. Помимо XFree86, лицензия MIT используется в таких известных продуктах, как Expat, Metakit, PuTTY, Mono и т.д. Текст этой лицензии почти полностью соответствует тексту трехпунктной лицензии BSD, отличаясь лишь пунктом, запрещающим использование доброго имени держателя авторских прав в рекламе.

Лицензия BSD

Лицензия BSD появилась в начале 1980-х специально для распространения операционной системы BSD. Существует три варианта текста этой лицензии:

1. Original BSD license, или четырехпунктная лицензия BSD.

2. Modified BSD license (New BSD license на сайте OSI), или трехпунктная лицензия BSD.

3. Лицензия корпорации Intel BSD+Patent License, специально разработанная для модифицирования и распространения программ, которые могут защищаться патентами на программное обеспечение корпорации Intel. Эта лицензия не одобрена ни Open Source Initiative, ни FSF.

Самая первая лицензия BSD состояла из четырех пунктов:

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

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

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

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

Но в 1999 году по многочисленным просьбам третий пункт был исключен как «раздражающее соглашение о рекламе BSD», поскольку сложным системам, использующим код многих программ, приходилось прокручивать порой до десятка страниц рекламы. В результате появилась модифицированная трехпунктная лицензия BSD, которая сейчас является основной.

Кроме того, на сайте GNU выделяется еще одна двухпунктная лицензия FreeBSD license, состоящая из двух первых пунктов лицензии BSD. На том же сайте GNU не рекомендуется называть эту лицензию «лицензией BSD», чтобы не вызывать неразбериху.

Лицензия GPL

GNU General Public License («Универсальная общедоступная лицензия GNU», или «Открытое лицензионное соглашение GNU») — самая популярная лицензия на свободное программное обеспечение, созданная в рамках проекта GNU. Первая версия лицензии GPL была выпущена в 1988 году, но затем была откорректирована, и в июне 1991-го вышла версия GPL 2, которая до сих пор является стандартом. GPL предоставляет получателям компьютерных программ следующие права, или «свободы»:

* свободу запуска программы с любой целью;

* свободу изучения того, как программа работает, и ее модификации (предварительным условием является доступ к исходному коду);

* свободу распространения копий;

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

16 января 2006 года на первой международной конференции по GPL 3, которая состоялась в MIT, был представлен первый черновой вариант лицензии. Разумеется, GPL 3 оказалась длиннее и сложнее GPL 2.

Практически сразу после этого Линус Торвальдс выразил свое разочарование в отношении лицензии GPLv3, заявив, что не видит в ней фундаментальных изменений, которые могли бы подтолкнуть к обновлению лицензии на ядро Linux. Против GPLv3 также выступили Эндрю Мортон, один из главных разработчиков операционной системы Linux, Дэвид Вудхаус, Дэйв Джонс и ряд других экспертов. По их мнению, представленный вариант GPLv3 нуждался в серьезной доработке.

Второй черновик появился 27 июля, до этого были проведены международные конференции в США, Бразилии и Испании, а в систему комментариев FSF поступило более тысячи предложений. В результате было внесено довольно много исправлений, но они в основном касаются нюансов и второстепенных вопросов.

Вот некоторые нововведения GPLv3.

Первый вариант черновика GPLv3 совсем запрещал использовать управление цифровыми правами (Digital Restriction Management, DRM). В частности, там было сказано следующее: «DRM фундаментально несовместимо с предназначением GPL и сильно ограничивает свободу пользователей, поэтому GPL гарантирует, что ПО, выпускаемое под этой лицензией, никогда не будет подвластно цифровым ограничениям и никогда не сделает подобное с другим ПО или цифровым контентом». Во втором варианте лицензии формулировки стали более мягкими, а сам термин DRM в тексте даже не упоминается.

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

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

Добавлен пункт, разрешающий распространение программы GPL по сетям peer-to-peer, таким как BitTorrent, без принятия лицензии и, соответственно, без предоставления исходного кода ПО.

FSF надеялся сделать окончательную версию GPL 3 к 15 января 2007 года, отводя себе время до марта 2007 года.

Лицензия LGPL

Сокращенная универсальная общественная лицензия GNU (GNU Lesser General Public License, кратко GNU LGPL) специально создана для возможности компоновки библиотек с программами, распространяемыми по другим лицензиям. GNU Library General Public License появилась одновременно с лицензией GPL 2, поэтому тоже получила номер версии 2 для обозначения того, что эти две лицензии являются взаимодополняющими. Номера версий разошлись в 1999 году, когда была выпущена LGPL версии 2.1, которую переименовали в Lesser General Public License для уточнения ее местоположения в философии GNU.

Стоит отметить, что вместе со вторым черновиком GPL 3 появился и первый вариант LGPL 3, разработанный как частный случай GPL 3 посредством применения раздела о дополнительных условиях.

Лицензия Apache

Лицензия Apache - это лицензия, не являющаяся «авторским левом», под которой распространяется известный сервер Apache. Она позволяет модифицировать и распространять программы как в открытых кодах, так и в двоичном виде. Помимо прав на сам программный продукт (на его использование, модификацию, распространение), лицензия требует передачи сопутствующих патентов. Предусмотрена контрмера на случай судебных претензий к разработчику ПО, распространяемого под лицензией Apache: в этом случае лицо, предъявившее такие претензии, автоматически теряет переданные ему права в отношении программы или сопутствующих патентов.

Лицензия Common Public License (CPL)

Лицензию Common Public License (CPL) сформулировала фирма IBM, чтобы распространять свои продукты. Особенностью этой лицензии является то, что она позволяет разработчикам изменять исходный код и использовать его в своих коммерческих продуктах. Под этой лицензией выпустила свой продукт даже Microsoft - Windows Installer XML.

Лицензия Mozilla (Mozilla Public License, MPL)

Лицензия Mozilla - замороченная лицензия, не реализующая строгое «авторское лево». Она имеет некоторые комплексные ограничения, которые делают ее несовместимой с GNU GPL. Например, модуль, подчиняющийся GPL, не может законным путем быть скомпонован с модулем, помещенным под действие MPL.

Экзотические лицензии

Кроме перечисленных выше и еще около полусотни других лицензий, которые ты найдешь на сайте OSI и FSF, существуют пока никем не признанные экзотические лицензии.

Например, индийский профессор Дипак Фатак предложил лицензию, которую он назвал Knowledge Public License (KPL). Суть ее состоит в создании среды, в которой разработчики смогут пользоваться преимуществами совместных усилий движения Open Source, сохраняя возможность применять свои собственные секреты. В одном из интервью Фатак сказал: «Сторонники свободного ПО страдают тем, что я называю J-фактором (от слова jealousy – «подозрительность»). А сторонники проприетарного ПО подвержены влиянию G-фактора (от слова greed – «жадность»). Они хотят выдоить из мировой экономики максимальное количество денег. Я хочу обратиться ко всем. Давайте позволим этим группам мирно и гармонично сосуществовать. Каждый получит от этого колоссальную выгоду».

А активисты проекта Global Processing Unit (GPU) предложили модифицированный вариант лицензии General Public License (GPL), дополнив ее одним из законов роботехники Айзека Азимова (это американский писатель-фантаст, если ты не знаешь). Законы роботехники он сформулировал в 1941 году в рассказе «Лжец» следующим образом:

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

2. Робот обязан выполнять приказы человека, кроме тех приказов, которые противоречат первому закону.

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

Активисты GPU взяли только первый закон Азимова и внесли следующую поправку в лицензию GPL: «Программа или результат ее работы не могут быть использованы или модифицированы для того, чтобы нанести вред человеку, а также своим бездействием допустить причинение вреда человеку». Цель такой модифицированной лицензии GPL в том, чтобы запретить использование программного обеспечения в военных целях.

Разумеется, тебе тоже никто не мешает сочинить собственную лицензию, и кто знает, может быть, однажды ее признают движения OSI и FSF ;).

Содержание