Журнал «Компьютерра» № 21 от 06 июня 2006 года - Компьютерра. Страница 10
Самая простая и исторически первая из ныне используемых свободных лицензий — лицензия операционной системы BSD — появилась в начале 1980-х. Она коротка и проста. Лицензия предоставляет полную свободу распространения кода, на любых условиях, с исходными текстами или без них, и заботится только об охране честного имени организации-автора (Калифорнийский университет). Конкретно: требуется, чтобы 1) при распространении исходных текстов сохранялся текст лицензии вместе с именем автора, 2) при распространении двоичных кодов лицензия и имя помещались в документацию и 3) имя автора не должно упоминаться всуе, то есть в рекламе продуктов, основанных (derived) на данном исходном коде. Был еще четвертый пункт — о демонстрации рекламной фразы со ссылкой на первоначальных разработчиков при любом упоминании продукта, использующего программу, но в 1999 году по многочисленным просьбам публики он был убран — сложным системам, использующим код многих программ, приходилось прокручивать порой до десятка страниц рекламы.
Аналогичные условия содержит лицензия другого классического проекта — X Window, называемая обычно MIT/X-лицензией. Лицензии такого типа называют пермиссивными, всеразрешающими. Их главной особенностью является то, что они позволяют как лицензировать исходные тексты под любой другой лицензией, так и вовсе их придержать.
Изначально эти лицензии не несли какого-либо этического или идейного содержания — никому просто не приходило в голову, что лицензия может быть предметом этики или философии. Однако после распространения GPL вокруг BSD образовался слой приверженцев, находящих в пермиссивных лицензиях этический смысл, которого, признаться, я никогда не понимал до конца. Приблизительно он таков: программист должен дарить миру свой код и не отвлекаться на суетные мысли о том, как и зачем его будут использовать другие.
Философия эта, впрочем, носит характер больше теоретический, нежели практический. Львиная доля BSD-лицензированных программ возникла в результате исследований, проводимых по государственным грантам американскими университетами. BSD-лицензия в них не являлась выбором разработчика, а была условием получения денег. И тут пермиссивная лицензия выглядит не только уместной, но и единственно возможной. Вряд ли вообще законно ставить обществу условия при распространении кода, созданного на его же, общества, деньги. Другой источник BSD-лицензированного кода — крупные корпорации, пропагандирующие новую технологию путем публикации ее «образцовой» реализации. Пример тому — X Consortium, созданный крупнейшими компьютерными фирмами для разработки стандартной графической системы юниксов X Window.
История с TEX и LATEX показывает, до каких крайностей можно дойти в защите своей репутации.
Издательская система TEX, детище известного математика Дональда Кнута (Donald Knuth), была одной из первых свободных программ. Но лицензии на распространение TEX, в современном смысле, не существует. Вместо этого Кнут опубликовал статью в научном журнале, повествующую о том, каковой он желает видеть дальнейшую судьбу TEX.
Система обрастала расширениями и дополнениями, из которых наиболее известен макропакет LATEX, ставший «лицом» TEX для современных пользователей. Условия распространения формулировались среди пользователей TEX неформально. Фактически их превращение в общепринятую форму публичной лицензии произошло только в 1999 году в виде LPPL — LATEX Project Public License.
LPPL примечательна тем, что она вообще запрещает вносить какие-либо изменения в существующие файлы. Содержащийся в этих файлах код может свободно использоваться, но лишь во вновь созданных файлах с другими именами. Все однажды опубликованное должно оставаться неизменным. Последнее не относится к первоначальным авторам — они могут исправлять ошибки по своему усмотрению. Такое требование кажется диким обычному программисту, но «TEXники» ценят стабильность результата выше, чем его безошибочность. По поводу LPPL были большие споры: можно ли вообще относить ее к свободным лицензиям? Кончилось тем, что в последующих версиях формулировки были сильно смягчены.
В российском авторском праве право автора произведения на указание его имени, на выбор формы этого указания (в определенных общепринятых пределах) и на защиту его имени от порочащих искажений установлено непосредственно в законе и не требует особого упоминания в лицензии. Но американский копирайтный закон в большинстве случаев не признает таких прав. Поэтому американцам, которые хотят сохранить за программой свое имя, приходится специально оговаривать это в лицензии, в меру собственного разумения. И выходит, как в случае с «четырехпунктной BSD-лицензией», что неумеренная настойчивость в защите своего доброго имени приносит окружающим массу неудобств.
Про GPL, детище Ричарда Столлмена (Richard Stallman) и Free Software Foundation (FSF), можно сказать много, но я ограничусь кратким упоминанием о лицензии — ибо не упомянуть о ней все-таки нельзя. Именно с публикации GPL отсчитывается существование свободного софта как единого значимого социального и экономического явления, а не просто совокупности замкнутых на себя кружков, каким сообщество было до Столлмена.
К GPL восходит добрая половина всех концепций и технических решений, используемых свободными лицензиями: копилефт (см. врезку), апгрейд лицензии, реализация передаваемых прав как способ заключения договора, понятие исходного кода и т. д.
Столлмен писал GPL как изложение на языке закона своих социально-политических взглядов. Но многие фирмы и отдельные программисты используют сейчас GPL как прагматичный способ поделиться своими разработками с сообществом, заслужив признание и репутацию, и при этом застраховаться от недобросовестной конкуренции. Для тех же, чья разработка представляет собой библиотеку подпрограмм или иное средство разработки софта, GPL позволяет одновременно пользоваться преимуществами и открытой, и проприетарной модели.
Больше двух третей всех свободных программ распространяются сейчас под лицензией GPL и под ее «ослабленным» вариантом — LGPL (вариант лицензии, специально созданный на тот случай, если автор библиотеки решит, что определенная степень совместимости с проприетарным софтом отвечает его интересам).
Не все начинания FSF были столь успешными. GNU Free Documentation License (GFDL) — это неряшливая реализация ненужной функциональности. В общих чертах, GFDL — лицензия, созданная с расчетом на ее применение к толстым «Руководствам пользователя» классического «мэйнфреймного» стиля — исчерпывающей документации на сложные программные системы. К книгам, которые чаще будут издаваться и читаться в бумажном виде, чем в машиночитаемом. Соответственно, основные усилия были потрачены на выстраивание предельно допустимого компромисса с интересами книгоиздателей, с одной стороны, и на защиту от их возможных недобросовестных уловок — с другой. Отсюда — причудливое разделение на прозрачные (transparent) и непрозрачные (opaque) форматы, мелочный подсчет максимального числа допустимых бумажных копий для разных форм распространения, детально прописанные требования к содержанию обложек документов и прочие обременительные условия.
Вскоре после начала применения GFDL печатные руководства приказали долго жить. Документация и вообще тексты технического характера сейчас распространяются в той же форме, что и сами программы, часто — в форме интерактивной справочной системы. А причудливые ограничения, рассчитанные на совершенно другую ситуацию, остались и до сих пор портят кровь программистам и составителям дистрибутивов. Неудивительно, что почти никто не любит GFDL.