Блог законченого гика

Еще один блог о линуксе и всяких модных стартапах

Краткий путеводитель по зоопарку публичных лицензий

Posted by difontane на Февраль 6, 2008

Автор: Федор Зуев
Опубликовано в журнале «Компьютерра» №21 от 07 июня 2006 года

Успех проекта GNU и широкое распространение генеральной публичной лицензии (GPL) GNU, ставшей его символом, породил множество подражаний. Движение свободного софта стало предметом пристального интереса широкой публики и государства, бизнеса и академических исследователей.

Идея дозированной передачи авторских (а в последнее время — и патентных) прав как орудия социальных преобразований сверхпритягательна для многих социально-ориентированных компьютерщиков и компьютерно-ориентированных юристов. Поэтому с середины-конца 1990-х различные типовые публичные лицензии стали расти как грибы после дождя. Может даже показаться, что их число скоро превысит число самих лицензируемых программ. В то же время стороннему наблюдателю лицензионная механика зачастую непонятна. Что такое публичные лицензии? Почему их так много? Почему программисты придают различиям в лицензиях такое большое значение?

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

Отступление: Публичные лицензии и EULAs

Часто спрашивают, да еще с эдакой ехидцей, в чем разница между публичными лицензиями и так называемыми «Лицензионными соглашениями конечного пользователя» (по-английски сокращенно EULA — текстами, выводимыми при инсталляции проприетарных программ и снабженными внизу кнопочкой «Я тебя уважаю!», которую нужно нажать, чтобы продолжить инсталляцию)? Следует честно ответить: кроме сходства в названиях между ними нет ничего общего.

Публичные софтверные лицензии появились в 1980-х годах, после введения в США копирайта на программы. Они формулируют общие условия, на которых автор передает публике право на распространение кода. Без публичных лицензий мы должны были бы, по букве закона о копирайте, каждый раз испрашивать особое разрешение у автора на копирование файла на другой носитель, на продажу диска с программой, на перевод сообщений и даже на исправление ошибки. Запуск программы не требует особого разрешения (как и, скажем, чтение книги), и публичные лицензии обычно тоже его не касаются. Впрочем, с распространением в некоторых странах софтверных патентов, претендующих на контроль именно работы программ, новейшие публичные лицензии стали затрагивать и этот вопрос.

EULA исторически происходят от договоров о сохранении коммерческой тайны, которые в 1960–70-е годы заставляли подписывать своих клиентов продавцы программ. В те времена это имело определенный смысл, поскольку компьютеров было мало и каждая продажа была Действом, совершавшимся с глазу на глаз. В наше время, когда программами торгуют в розницу, говорить о какой-то тайне уже не приходится. Сейчас основным содержанием EULA являются разного рода дисклаймеры — заявления об отказе от ответственности за результаты работы программы, предупреждения о возможных ошибках и т. д. Смысл их не в передаче пользователю прав, а, напротив, в ограждении разработчика от претензий пользователя. Для того и требуется нажатие на кнопочку — как доказательство того, что пользователь EULA читал. Зачастую в EULA также включают несколько внушительно звучащих фраз про авторские права (как правило, неточных или даже вовсе ошибочных).

Анархист на государевой службе: BSD

Самая простая и исторически первая из ныне используемых свободных лицензий — лицензия операционной системы BSD — появилась в начале 1980-х. Она коротка и проста. Лицензия предоставляет полную свободу распространения кода, на любых условиях, с исходными текстами или без них, и заботится только об охране честного имени организации-автора (Калифорнийский университет). Конкретно: требуется, чтобы 1) при распространении исходных текстов сохранялся текст лицензии вместе с именем автора, 2) при распространении двоичных кодов лицензия и имя помещались в документацию и 3) имя автора не должно упоминаться всуе, то есть в рекламе продуктов, основанных (derived) на данном исходном коде. Был еще четвертый пункт — о демонстрации рекламной фразы со ссылкой на первоначальных разработчиков при любом упоминании продукта, использующего программу, но в 1999 году по многочисленным просьбам публики он был убран — сложным системам, использующим код многих программ, приходилось прокручивать порой до десятка страниц рекламы.

Аналогичные условия содержит лицензия другого классического проекта — X Window, называемая обычно MIT/X-лицензией. Лицензии такого типа называют пермиссивными, всеразрешающими. Их главной особенностью является то, что они позволяют как лицензировать исходные тексты под любой другой лицензией, так и вовсе их придержать.

Изначально эти лицензии не несли какого-либо этического или идейного содержания — никому просто не приходило в голову, что лицензия может быть предметом этики или философии. Однако после распространения GPL вокруг BSD образовался слой приверженцев, находящих в пермиссивных лицензиях этический смысл, которого, признаться, я никогда не понимал до конца. Приблизительно он таков: программист должен дарить миру свой код и не отвлекаться на суетные мысли о том, как и зачем его будут использовать другие.

Философия эта, впрочем, носит характер больше теоретический, нежели практический. Львиная доля BSD-лицензированных программ возникла в результате исследований, проводимых по государственным грантам американскими университетами. BSD-лицензия в них не являлась выбором разработчика, а была условием получения денег. И тут пермиссивная лицензия выглядит не только уместной, но и единственно возможной. Вряд ли вообще законно ставить обществу условия при распространении кода, созданного на его же, общества, деньги. Другой источник BSD-лицензированного кода — крупные корпорации, пропагандирующие новую технологию путем публикации ее «образцовой» реализации. Пример тому — X Consortium, созданный крупнейшими компьютерными фирмами для разработки стандартной графической системы юниксов X Window.

Доктор Кнут, поверьте дети, страшно крут: LPPL

Дональд Кнут  © IOERROR@FLICKR, ЛИЦЕНЗИЯ CC-BY-SA-2.0История с TEX и LATEX показывает, до каких крайностей можно дойти в защите своей репутации.

Издательская система TEX, детище известного математика Дональда Кнута (Donald Knuth), была одной из первых свободных программ. Но лицензии на распространение TEX, в современном смысле, не существует. Вместо этого Кнут опубликовал статью в научном журнале, повествующую о том, каковой он желает видеть дальнейшую судьбу TEX.

Система обрастала расширениями и дополнениями, из которых наиболее известен макропакет LATEX, ставший «лицом» TEX для современных пользователей. Условия распространения формулировались среди пользователей TEX неформально. Фактически их превращение в общепринятую форму публичной лицензии произошло только в 1999 году в виде LPPL — LATEX Project Public License.

LPPL примечательна тем, что она вообще запрещает вносить какие-либо изменения в существующие файлы. Содержащийся в этих файлах код может свободно использоваться, но лишь во вновь созданных файлах с другими именами. Все однажды опубликованное должно оставаться неизменным. Последнее не относится к первоначальным авторам — они могут исправлять ошибки по своему усмотрению. Такое требование кажется диким обычному программисту, но «TEXники» ценят стабильность результата выше, чем его безошибочность. По поводу LPPL были большие споры: можно ли вообще относить ее к свободным лицензиям? Кончилось тем, что в последующих версиях формулировки были сильно смягчены.

Attribution — право на имя

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

Конституция свободного софта: GPL/LGPL

Про GPL, детище Ричарда Столлмена (Richard Stallman) и Free Software Foundation (FSF), можно сказать много, но я ограничусь кратким упоминанием о лицензии — ибо не упомянуть о ней все-таки нельзя. Именно с публикации GPL отсчитывается существование свободного софта как единого значимого социального и экономического явления, а не просто совокупности замкнутых на себя кружков, каким сообщество было до Столлмена.

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

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

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

В семье не без урода: GFDL

Не все начинания FSF были столь успешными. GNU Free Documentation License (GFDL) — это неряшливая реализация ненужной функциональности. В общих чертах, GFDL — лицензия, созданная с расчетом на ее применение к толстым «Руководствам пользователя» классического «мэйнфреймного» стиля — исчерпывающей документации на сложные программные системы. К книгам, которые чаще будут издаваться и читаться в бумажном виде, чем в машиночитаемом. Соответственно, основные усилия были потрачены на выстраивание предельно допустимого компромисса с интересами книгоиздателей, с одной стороны, и на защиту от их возможных недобросовестных уловок — с другой. Отсюда — причудливое разделение на прозрачные (transparent) и непрозрачные (opaque) форматы, мелочный подсчет максимального числа допустимых бумажных копий для разных форм распространения, детально прописанные требования к содержанию обложек документов и прочие обременительные условия.

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

Впрочем, следует отметить, что из-за всеобщей нелюбви к GFDL ее критика является популярной стартовой площадкой для атаки на копилефт как таковой. Разговоры о «недостаточной свободе» GPL сейчас, через два десятилетия после ее появления, мало кем воспринимаются всерьез. А вот те же самые претензии к тем же самым словам, но — взятым из текста GFDL вместо GPL, порой встречают активную народную поддержку.

Копилефт и совместимость лицензий

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

Две лицензии называются совместимыми, если программу, содержащую куски кода, лицензированные под обеими лицензиями, мы можем каким-либо образом законно распространять. Две различные копилефтные лицензии обычно несовместимы, поскольку каждая требует распространять комбинацию на условиях своего копилефта. Исключение составляют случаи, когда возможность комбинации специально оговорена, как, например, в LGPL.

Если копилефтная и пермиссивная лицензия совместимы (например, GPL и BSD), то объединенный код распространяется на условиях копилефтной лицензии.

Скажи «Ку»: QPL

Другим примером «экстремальной» свободной лицензии является QPL (Q Public License).

QPL была придумана в 1998 году фирмой TrollTech, когда та решила привести условия распространения своей библиотеки виджетов Qt в соответствие с критериями свободного софта. Для проприетарного использования библиотека продается за большие деньги, и TrollTech хотела поставить такие условия распространения, которые были бы наиболее благоприятны для ее бизнеса.

Для самой TrollTech усилия оказались потраченными напрасно — после двух лет горячих споров, в 2000 году, свободная версия Qt была лицензирована под GPL. Ожидаемые преимущества QPL для коммерции, как оказалось, не перевешивали неудобств и плохой репутации от GPL-несовместимой лицензии. Сейчас под QPL распространяются лишь несколько незначительных программ. Однако QPL оказала большое влияние на развитие идеологии свободного софта, на представления о том, какие нормы может содержать свободная лицензия.

QPL — асимметричная лицензия. Права Первоначального Разработчика и права разработчика вторичного, лицензиата, различны. Первый может пользоваться кодом — в том числе и кодом второго разработчика — как угодно, в том числе и выпуская проприетарные версии программы. Второй ограничен лицензией. Первый может потребовать копию софта, который разрабатывает второй, — и второй обязан его предоставить. Из-за асимметричности QPL нельзя отнести ни к пермиссивным, ни к копилефтным: Первоначальному Разработчику она предоставляет неограниченные права, остальным — только голодный минимум.

Другой характерной чертой QPL является patch clause — требование распространять все модификации исходного кода отдельно от первоначальной программы, исключительно в виде патчей. В принципе, это было не ново — уже TEX распространялся на похожих условиях. Но многие программисты впервые встретили такую конструкцию именно в QPL.

Виртуальный Монпарнас: Creative Commons

Лоуренс Лессиг, проект Creative Commons   © LESSING.ORG, ЛИЦЕНЗИЯ CC-BY-2.0Особняком стоит проект Creative Commons, созданный профессором права Лоуренсом Лессигом со товарищи (Lawrence Lessig). С точки зрения практики свободного софта, да и софта вообще, проект этот — жутчайший бардак. Creative Commons уже сочинили в общей сложности несколько десятков разных публичных лицензий, по большей части несовместимых друг с другом, причем многие из них заведомо не удовлетворяют требованиям свободного софта. Мало того, каждой из этих лицензий предполагается делать еще «национальную адаптацию» для десятков стран, и эти варианты тоже несовместимы.

Но эти лицензии предназначены вовсе не для программистов. Их целевая аудитория — художники, беллетристы, поэты, музыканты, для которых совместимость лицензий не играет особой роли — никто из них и не предполагает комбинировать сотни независимых рассказов и песен в огромную взаимоувязанную систему, подобную ядру Linux. Свобода модификаций, которую они полагают полезной и необходимой, весьма скромна. С другой стороны, нормы законов о fair use, свободном использовании, практически не работающие в софтверной области, здесь разрешают множество вопросов с цитированием и подобными ему заимствованиями.

Лицензии Сreative Commons (СС) организованы в виде этакого детского конструктора, в котором автор может подобрать подходящие ему условия распространения из стандартных деталей. Каждая деталька обозначена суффиксом в имени лицензии. Так, -NC (NonCommercial) означает, что допускается только некоммерческое распространение, -SA (ShareAlike) — что в лицензии присутствует копилефт, -BY — что должна сохраняться указанная автором манера attribution, а -ND (NoDerivatives) запрещает создание новых произведений на основе данного.

Очень симпатичным изобретением Creative Commons является система пиктограмм, позволяющая лаконично и наглядно отметить произведение как распространяемое под той или иной CC-лицензией. На первый взгляд это выглядит детской игрой по сравнению с тяжеловесным «легалезе» софтверных лицензий, но, как выяснилось недавно[creativecommons.org/weblog/entry/5823], суды, по крайне мере европейские, вполне способны понять и принять условия этой игры. (Многие иллюстрации к этой статье выпущены именно под лицензиями CC. — И.Щ.)

Заветы Отцов: Founders’ Copyright

Другим любопытным, но малоизвестным проектом, поддерживаемым Creative Commons, является Founders’ Copyright — копирайт отцов-основателей. Суть его в том, что автор добровольно отказывается от полагающегося ему по современному закону огромного срока копирайта, оставляя себе только тот срок, который существовал в США в начале XIX века, — четырнадцать лет.

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

Впрочем, стоит отметить, что концепцию Founders’ Copyright поддержал и взял на вооружение издатель-гуманист Тим О’Рейли.

Что такое свободный софт

Брюс Перенс   © APПонятие свободного софта ввел в 1980-х годах Ричард Столлмен. Перефразируя Рузвельта, он заявил, что каждый пользователь программы должен иметь четыре свободы: право свободно запускать, распространять, изучать и улучшать программу. Мало-помалу эти права конкретизировались, и наконец в 1996-м было сформулировано довольно подробное определение свободного софта, сокращенно FSD (Free Software Definition).

Примерно в то же время свое определение свободного софта формулирует Проект Дебиан. Создатель Debian Free Software Guidelines (DFSG) Брюс Перенс (Bruce Perens) рассматривал DFSG как другое определение того же самого явления, о котором говорил Столлмен. В отличие от FSD, это определение оперировало не социальными и этическими, а формально-юридическими понятиями, что облегчало классификацию запутанных софтверных лицензий — задачу, практически стоявшую перед Дебианом. Однако этот же подход создает простор для схоластических построений, в которых легко заблудиться. В последние годы разработчики, выступавшие от имени Проекта Дебиан, порой высказывали довольно странные суждения по поводу свободы-несвободы конкретных лицензий, и доверие к ним, по крайне мере мое, сильно упало. Однако сами DFSG остаются общепризнанными критериями для оценки лицензий.

Позднее, при участии того же Брюса Перенса, было сформулировано Open Source Definition (OSD) — определение софта с открытыми исходными текстами. Первая версия OSD представляла собой DFSG, в которых были удалены упоминания о Проекте Дебиан. Но их дальнейшие уточнения и толкования пошли в совершенно разные стороны, так что теперь эти определения отличаются и текстуально, и идеологически. В отличие от FSF, сформулировавшего критерии, но не спешащего предлагать себя на роль судьи, и от Дебиана, оценивающего свободу не вообще лицензии, а каждой конкретной программы в отдельности, OSI (Open Source Initiative) ведет тщательный учет лицензий, которые она официально признала «достаточно Open Source». Такие лицензии называются OSI-approved[Список таких лицензий].

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: