понедельник, 8 декабря 2008 г.

Мир лицензий: разбираемся с лицензиями BSD

Мир лицензий: разбираемся с лицензиями BSD / Dura Lex / Хабрахабр

Недавно мной была написана статья Мир лицензий: разбираемся с GNU GPL, в которой я попытался обобщить основную информацию про лицензии GPL, кратко рассказать об истории лицензии, ее версиях и совместимости других лицензий с GPL. В комментариях к статье возникло несколько вопросов и, для ответов на некоторые из них, мной был сделан частичный перевод официального GPL FAQ.

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

В этой статье я постараюсь рассмотреть вторую сторону споров — лицензии BSD, их различия, историю и производные. Кроме того, я попытаюсь сравнить GPL и BSD и рассказать, почему оригинальная BSD-лицензия несовместима с GPL.


BSD


Наверное, всем известно, что BSD расшифровывается как «Berkeley Software Distribution». Это название пакета программ, которые собрал Билл Джой, выпускник Калифорнийского Университета Беркли, как приложение к шестой версии операционной системы UNIX. В 1983 году, согласно wiki, пакет 2.9BSD уже являл собой не просто пакет программного обеспечения, но полноценную операционную систему, представляющую из себя модифицированную UNIX v7. Таким образом, «BSD» стало означать «BSD UNIX» и в таком значении эта аббревиатура дожила до наших дней.

Лицензии BSD


С лицензией BSD связана любопытная история, описание которой расположено здесь. Вкратце, уже 4.3BSD в 1986 году содержала в себе отсылки к лицензии BSD в виде комментариев в исходном коде. Но, в силу неких причин, сам текст лицензии не был приложен к дереву проекта. И только 4.4BSD вышедшая в 1994 году содержала в себе полный текст оригинальной лицензии BSD, который (согласно источнику) датируется 1990 годом.

Впрочем, другой источник сообщает о том, что лицензия была использована еще в 1980 году. Как бы то ни было, на сегодняшний день существует несколько вариантов BSD-лицензий.

Original BSD license


Это первый вариант лицензии, который принято называть лицензией 4-ех пунктов (по количеству пунктов условий в тексте). Лицензия разрешала свободное использование и распространение исходных или бинарных кодов с модификациями или без, но с условиями, перечисленными в этих четырех пунктах. Условия эти гласили:
1. Распространенные копии исходного кода должны содержать копирайты указанные выше, этот список условий и отказ от ответственности указанный ниже.
2. Распространенные копии бинарного кода должны воспроизводить копирайты указанные выше, этот список условий и отказ от ответственности указанный ниже в документации и/или других материалах поставляемых с распространяемым пакетом.
3. Все рекламные материалы, ссылающиеся на возможности или использование этого ПО, должны демонстрировать следующее уведомление: Этот продукт включает ПО, разработанное Университетом Калифорнии, Беркли и помогавшими лицами.[1]
4. Ни наименование Университета, ни имена соучастников не могут быть вписаны или использованы для продвижения продуктов произведенных на основании этого программного обеспечения без специального предварительно написанного разрешения.

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

Revisited BSD license


Проблема с третьим пунктом была решена в 1999 году, когда 22 июля было выпущено обращение Вильяма Хоскинса директора отдела по лицензированию Университета Беркли, в котором отменялся третий пункт лицензии для всех продуктов BSD. Согласно этому документу, более не требовалось включать ссылку на Университет Беркли в своих рекламных материалах.

Таким образом, возникла пересмотренная лицензия BSD, известная так же как лицензия 3-ех пунктов. Этот вариант лицензии стал совместим с лицензиями GPL, что, несомненно, имело важные последствия. Теперь коды обеих лицензий, собранные вместе, можно было выпускать в одном продукте под одной GPL лицензией.

Clear BSD license


Эта разновидность лицензии основана на Revisited BSD license и содержит один дополнительный пункт, который говорит о том, что лицензия не предоставляет никаких прав на патенты. Clear BSD была создана компанией MetaCarta, которая объясняет модификацию желанием исключить неопределенность по отношению к патентам в BSD-лицензиях. Различие в лицензиях заключается в этой строке: «NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.»[2]. Clear BSD совместима с GPLv2 и GPLv3.

FreeBSD license


Эта лицензия так же известна как лицензия 2-ух пунктов. По сравнению с модифицированной BSD-лицензией в этой лицензии убран пункт условий о Университете Беркли. Лицензия родилась при разработке проекта FreeBSD — операционной системе на базе UNIX. Лицензия совместима с GNU GPL.

ISC license (OpenBSD license)


В 1995 возникла очередная вариация UNIX, которую основатели назвали OpenBSD. Для ее распространения использовалась лицензия созданная Internet Software Consortium, которая была схожа с BSD-лицензией двух пунктов (FreeBSD), но по сути убирала эти два пункта, так как согласно Бернской конвенции об охране литературных и художественных произведений они уже не требовались. В итоге лицензия стала представлять собой, кроме отказа от ответственности, одно предложение «Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies». Эта простейшая лицензия совместима с GPL-лицензиями.

GPL и BSD, вместо заключения


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

GPL и BSD олицетворяют собой две точки зрения на мир свободного программного обеспечения. Первая считает, что ПО должно быть свободным и порождать свободное ПО. «Свобода или Смерть» — лозунг Столлмана как нельзя лучше отражает смысл этой точки зрения. Вторая точка зрения предполагает, что свобода должна заключаться и в том, чтобы делать несвободное ПО. Это более либеральная точка зрения. По сути, здесь возникает философский вопрос: можно ли считать свободой разрешение на ограничение свободы.

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

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

Источники


[1] Лицензия BSD
[2] The Clear BSD: Introduction

PS:
пожалуйста, если вы нашли неточность или ошибку в статье, сообщите в комментариях или мне на личную почту

_________
Текст подготовлен в ХабраРедакторе

6 декабря 2008, 19:46

Комментариев нет: