lqp - Краткий путеводитель по зоопарку публичных лицензий
June 15th, 2006
03:16 am

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
Краткий путеводитель по зоопарку публичных лицензий

Компьютерра напечатала мою статью о классических публичных лицензиях. Помещаю ее и тут. От журнала текст здесь отличается в основном несколько другим порядком главок - на бумаги часть текста была вынесена в отдельные врезки, и потом по другому собрана. Ну и еще несколько маленьких правок, кои я уже не помню.

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

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

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

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

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

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

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

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

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

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

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

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

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

Отступление 2: attribution - право на имя.

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

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

История с TEXом и LATEXом демонстрирует, до каких крайностей можно дойти в защите своей репутации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Скажи “Ку”: 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 созданный профессором права Лоуренсом Лессигом. С точки зрения практики свободного софта, да и софта вообще, проект этот - жутчайший бардак. Creative Commons сочинили уже в общей сложности несколько десятков разных публичных лицензий, по большей части несовместимых между собой, большинство из которых заведомо не удовлетворяет требованиям свободного софта. Мало того, каждой из этих лицензий предполагается делать еще “национальную адаптацию” для десятков стран, также между собой несовместимых.

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

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

Очень симпатичным изобретением Creative Commons является их система пиктограмм, позволяющая лаконично наглядно отметить произведение, как распространяемое под той или иной CC-лицензией. Это, на первый взгляд, выглядит детской игрой, по сравнению с тяжеловесным легалезе софтверных лицензий, но, как выяснилось недавно, суды, по крайне мере европейские, вполне способны понять и принять условия этой игры.

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

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

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

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


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

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

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

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

Tags: ,

(11 comments | Leave a comment)

Comments
 
From:[info]droggy.livejournal.com
Date:June 14th, 2006 - 09:13 pm
(Link)
А чем же посоветуете пользоваться при написании свободных книг, если лицензии для не-программ так несовершенны??..
From:[info]lqp
Date:June 17th, 2006 - 01:25 pm
(Link)
Ну, для технических текстов и BSD/GPL неплохо подходят есть даже специальный вариант BSD-лицензии для документации (называется BSD DPL).

Художественную прозу можно в принципе тоже распространять под ними же, но тут могут возникнуть проблемы со всякими сложными производными, типа экранизации.

Хуже всего со стихами и музыкой, для них копирайт очень другой.
From:[info]kamarado.livejournal.com
Date:June 15th, 2006 - 02:18 am
(Link)
Сейчас под QPL распространяются лишь несколько незначительных программ.

Под QPL распространяется приличное количество "значительных программ". Один только OCaml чего стоит.
From:[info]lqp
Date:June 17th, 2006 - 01:36 pm
(Link)
На freshmeat зарегистрировано 66 проектов с лицензией QPL.

Почти половина - под двойными и тройными лицензиями, т.е. QPL обеспечивается только ради обратной совместимости.
From:[info]nikcorn.livejournal.com
Date:June 15th, 2006 - 08:50 am

Ссылка на Тим О’Рейли битая

(Link)
правильная - http://www.oreilly.com или http://tim.oreilly.com/ ?
From:[info]218
Date:June 23rd, 2006 - 06:52 pm
(Link)
Если копилефтная и пермиссивная лицензия совместимы между собой (например, GPL и BSD), то обьединенный код распространяется на условиях копилефтной лицензии.

а разве gpl и bsd совместимы?
From:[info]lqp
Date:June 23rd, 2006 - 07:10 pm
(Link)
А что, есть какие-тог сомнения?
From:[info]218
Date:June 23rd, 2006 - 08:05 pm
(Link)
Я имею в виду, возможность включать BSD-код в GPL программу, а потом релизить все в куче как GPL.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.


Если я залицензирую кусок BSD-кода под GPL, то это будет противоречить 1-ому и 2-ому пункту BSD лицензии. Или я где-то ошибся?
From:[info]lqp
Date:June 23rd, 2006 - 08:20 pm
(Link)
В чем Вы видите противоречие?
From:[info]218
Date:June 23rd, 2006 - 09:24 pm
(Link)
предположим, у меня есть кусок bsd-кода. я его вставляю в свою gpl-программу. в соответствии с цитатой из текста gpl, который я привел, этот кусок становится тоже gpl. но, тк.:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

этот кусок никак gpl становиться не может, ибо это приведет к потере "list of conditions" и проч.
From:[info]lqp
Date:June 24th, 2006 - 06:23 am
(Link)
приведет к потере "list of conditions" и проч.

Каким образом?
Powered by LJ.Rossia.org