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.
Впрочем, следует отметить, что из-за всеобщей нелюбви к GFDL ее критика является популярной стартовой площадкой для атаки на копилефт как таковой. Разговоры о «недостаточной свободе» GPL сейчас, через два десятилетия после ее появления, мало кем воспринимаются всерьез. А вот те же самые претензии к тем же самым словам, но — взятым из текста GFDL вместо GPL, порой встречают активную народную поддержку.
Копилефт — условие, требующее, чтобы всякое дальнейшее распространение кода свободной программы, а также дополнений к ней шло на тех же условиях, на которых она была получена, в частности — чтобы исходный код программы оставался доступен. Классический пример — GNU GPL. Но существуют и другие формулировки копилефта.
Две лицензии называются совместимыми, если программу, содержащую куски кода, лицензированные под обеими лицензиями, мы можем каким-либо образом законно распространять. Две различные копилефтные лицензии обычно несовместимы, поскольку каждая требует распространять комбинацию на условиях своего копилефта. Исключение составляют случаи, когда возможность комбинации специально оговорена, как, например, в LGPL.
Если копилефтная и пермиссивная лицензия совместимы (например, GPL и BSD), то объединенный код распространяется на условиях копилефтной лицензии.
Другим примером «экстремальной» свободной лицензии является QPL (Q Public License).
QPL была придумана в 1998 году фирмой TrollTech, когда та решила привести условия распространения своей библиотеки виджетов Qt в соответствие с критериями свободного софта. Для проприетарного использования библиотека продается за большие деньги, и TrollTech хотела поставить такие условия распространения, которые были бы наиболее благоприятны для ее бизнеса.
Для самой TrollTech усилия оказались потраченными напрасно — после двух лет горячих споров, в 2000 году, свободная версия Qt была лицензирована под GPL. Ожидаемые преимущества QPL для коммерции, как оказалось, не перевешивали неудобств и плохой репутации от GPL-несовместимой лицензии. Сейчас под QPL распространяются лишь несколько незначительных программ. Однако QPL оказала большое влияние на развитие идеологии свободного софта, на представления о том, какие нормы может содержать свободная лицензия.
QPL — асимметричная лицензия. Права Первоначального Разработчика и права разработчика вторичного, лицензиата, различны. Первый может пользоваться кодом — в том числе и кодом второго разработчика — как угодно, в том числе и выпуская проприетарные версии программы. Второй ограничен лицензией. Первый может потребовать копию софта, который разрабатывает второй, — и второй обязан его предоставить. Из-за асимметричности QPL нельзя отнести ни к пермиссивным, ни к копилефтным: Первоначальному Разработчику она предоставляет неограниченные права, остальным — только голодный минимум.
Другой характерной чертой QPL является patch clause — требование распространять все модификации исходного кода отдельно от первоначальной программы, исключительно в виде патчей. В принципе, это было не ново — уже TEX распространялся на похожих условиях. Но многие программисты впервые встретили такую конструкцию именно в QPL.