Может ли человек, употребляющий словосочетание “свободное ПО”, быть уверенным, что он выражается юридически однозначно? Увы, нет. Даже если он знает разницу между свободным, открытым и бесплатным (www.pcweek.ru/themes/detail.php?ID=116309). Причина в том, что под этот термин подходит множество конкретных лицензий.
Прежде всего разберемся, зачем вообще нужны какие-то дополнительные юридические ухищрения, если автор желает, чтобы его программа стала свободной. В конце концов никто не мешает ему просто отказаться от своих прав на нее, объявив свое произведение общественной собственностью (public domain). Однако такой шаг вовсе не воспрепятствует тому, чтобы любой желающий сделать это приложение проприетарным. Он просто возьмет ваш код, внесет в него незначительные изменения — и прощай, былая свобода.
Поэтому совсем отказываться от авторского права нельзя. Ничьё имеет свойство очень быстро находить хозяина. И претензии к нему предъявить сложно. В конце концов — кто-то бросил, а он поднял. Возможно, с точки зрения морали тут еще можно к чему-то придраться, но юридически такой собственник будет совершенно чист.
Поэтому и появилась концепция, позволяющая сделать программы действительно свободными. Она получила название copyleft.
Вопреки широко распространенному ошибочному мнению copyleft — не отказ от авторских прав, а только способ их использования. Не стоит искать в частице “left” какой-то особый скрытый смысл и связывать ее с глаголом “to leave” (оставлять). Copyleft — это не более, чем противопоставление термину copyright. Ведь если есть “право”, то должно быть и “лево”.
Кстати, к политической ориентации это тоже не имеет никакого отношения. Хотя ревнители тотального “копирайта” часто называют сторонников свободного ПО коммунистами, по каким-то неведомым причинам полагая, что в этом слове есть что-то обидное.
Итак, copyleft — это концепция авторского права, включающая в себя некие дополнительные правила. Согласно им всякий должен получить право на использование, модификацию и распространение программного кода, а также любых производных программ. Проще говоря — на каких условиях получил, на таких и распространяй.
Как нетрудно заметить, никаких ценовых ограничений на распространителя copyleft не накладывает. Если смог продать свободную программу, не нарушив при этом требования лицензии, то молодец. Только на практике очень сложно получить деньги за то, что все остальные готовы раздавать даром.
Тем не менее copyleft — это только общая концепция. На ее основе создаются вполне конкретные лицензии, которые и имеют некую практическую ценность для конечного пользователя. Рассмотрим наиболее распространенные из них.
GNU General Public License
Сокращенное наименование — GNU GPL или просто GPL. Согласно исследованию, проведенному компанией Black Duck Software, 70% всех открытых проектов распространяются под лицензией семейства GPL.
Эта лицензия предоставляет пользователям следующее:
— право свободно запускать программу с любой целью;
— право свободно изучать исходный текст программы;
— право свободно модифицировать и улучшать программу;
— право свободно распространять её копии.
При этом важно, что ни один пользователь, получивший подобные права, не должен каким-то образом ограничивать аналогичные права других пользователей. То есть если кто-то решил модифицировать программу, то распространять измененный вариант он должен на тех же условиях, на которых получил прототип. Произведение, получив свободу один раз, не может быть лишено ее впоследствии.
Это, кстати, позволяет понять, какие именно претензии лежат в основе судебных процессов о нарушении GPL. Как правило, иски предъявляются компаниям, спутавшим общее с ничьим и вследствие этого пытающимся приватизировать свободные программы, что запрещено лицензионным договором.
Одно из важных условий GPL — так называемый отказ от ответственности. Согласно этому положению пользователь не имеет права требовать от автора больше, чем он уже получил. То есть если какая-то свободная программа не работает (или работает не так, как хочется), претензии к разработчику предъявлять не стоит.
Именно на этом пункте построена значительная часть критической риторики. Мол, за качество свободного ПО никто не отвечает, поэтому использовать его для решения серьезных задач не следует. Разберемся с этим основательнее.
Во-первых, GPL вовсе не исключает каких-либо иных условий. Например, в случае конкретного заказа. Очевидно, что в этом случае требования определяет тот, кто платит. И совершенно не важно, что уже написанная программа будет свободной. Разумеется, за исключением того, что предъявлять к авторам какие-то претензии по качеству может только непосредственно заказчик.
Во-вторых, если не выдавать желаемое за действительное, то какая-либо ответственность разработчика ПО — в большинстве случаев не более чем пустой звук. Попробуйте взыскать деньги с автора антивирусной программы в случае утраты важных данных по причине заражения системы. Или попытайтесь потребовать с компании Microsoft хотя бы одну копейку за каждый “синий экран”.
Не правда ли, лучше сразу честно отказаться от ответственности, чем делать хорошую мину при плохой игре? Практика показывает, что единственный более-менее действенный способ заставить разработчика платить за свои ошибки (или хотя бы быстро их исправлять) — заключить с ним отдельный договор (фактически — самому финансировать всю работу).
GPL полностью отвечает всем требованиям концепции copyleft. Распространяемые под этой лицензии программы полностью свободны.
Первая версия GPL появилась в 1988 году. Просуществовала она недолго: уже через три года ее сменила вторая. На сегодняшний день именно она применяется чаще всего — по оценкам компании Black Duck Software, 58% открытых проектов используют GPLv2.
GPLv3 появилась в 2007 году после долгих и жарких обсуждений. Темпы перехода на нее растут на 20% в месяц. Именно эту лицензию выбрали такие известные проекты, как Samba, Ubuntu и OpenOffice.org.
Berkeley Software Distribution
Сокращенное название — BSD. По оценкам Black Duck Software эту лицензию используют более 6% проектов.
Главная особенность BSD заключается в том, что она не только позволяет использовать продукт в сторонних разработках, но в отличие от GPL разрешает в дальнейшем сделать его закрытым. В частности, компоненты FreeBSD послужили основой для проприетарной операционной системы Mac OS X.
Исходя из этого многие программисты считают, что BSD более свободна, чем GPL. Определенный резон в такой точке зрения есть, ведь предлагаемая лицензия практически ни в чем не ограничивает пользователя. Понравился какой-то кусок кода? Можно смело его брать и вставлять в свою закрытую программу.
Таким образом, BSD соответствует концепции copyleft несколько меньше, чем GPL. И именно потому, что не гарантирует окончательной и бесповоротной свободы программе, распространяемой под этой лицензией.
Apache License
Согласно исследованиям Black Duck Software, Apache License охватывает около 3% от всех открытых проектов. Как и все свободные лицензии, она даёт право использовать, распространять и изменять ПО.
Однако Apache License не требует неизменности лицензии при модификации продукта. Боле того, она даже разрешает сделать его закрытым. Единственное условие заключается в том, что пользователь обязательно должен быть информирован о самом факте включения в продукт кода, распространяемого по этой лицензии.
С такой целью в корневом каталоге должны находиться два файла: “LICENSE”, содержащий копию лицензии, и “NOTICE”, в котором перечисляются все библиотеки, лицензированные по Apache License вместе с именами их создателей.
Mozilla Public License
Сокращенное наименование — MPL. По данным Black Duck Software эта лицензия используется чуть больше, чем в 1% проектов.
Специфика этой лицензии заключается в том, что защищенный ею код может быть объединен в одной программе с проприетарными объектами. По этой причине ее считают слабо совместимой с концепцией copyleft.
Используется лицензия MPL для приложений, разрабатываемых в рамках проекта Mozilla — Mozilla Suite, Mozilla Firefox, Mozilla Thunderbird и др. Так что небольшое число проектов компенсируется высокой популярностью этих программ.
Сходство и различия
Как видите, лицензий, которые принято называть свободными, существует довольно много. Чем-то они похожи, а в чем-то и различаются.
Помимо неких концептуальных требований свободы у всех упомянутых лицензий есть две общие черты. Во-первых, пиетет к авторскому праву. Имя разработчика обязательно должно быть указано. А как же иначе — человек работал, старался, и забывать его негоже.
Во-вторых, гарантий на ПО не предоставляет никто. Хотите ответственной модели разработки — заключайте договор с автором. Если удастся прийти к консенсусу, вы получите именно то, чего хотите. Разумеется, за хорошие деньги.
Главное отличие GPL от других рассматриваемых тут лицензий заключается в том, что только она обязывает распространять производные продукты на тех же условиях, что и прототипы. Это несколько ограничивает ее применение в бизнес-среде, поскольку препятствует созданию проприетарных программ, продавая которые можно получить прибыль. Более того, BSD, MPL и Apache License даже не требуют как-то помечать измененные файлы.