Недавно мной была написана статья Мир лицензий: разбираемся с GNU GPL, в которой я попытался обобщить основную информацию про лицензии GPL, кратко рассказать об истории лицензии, ее версиях и совместимости других лицензий с GPL. В комментариях к статье возникло несколько вопросов и, для ответов на некоторые из них, мной был сделан частичный перевод официального GPL FAQ.
Как это часто бывает, первая статья стала поводом к продолжительным спорам, суть которых сводилась к одному вопросу: «что лучше (для людей, программ, мира, будущего) GPL или BSD лицензии?». На мой взгляд, этот спор сродни вопросу «с какого конца разбивать яйцо?» и не имеет одного определенного ответа. Использование определенной лицензии — это дело каждого и разнообразие их — лишь положительный фактор, который дает разработчикам (и авторам) больше свободы и возможностей для распространения своих трудов.
В этой статье я постараюсь рассмотреть вторую сторону споров — лицензии BSD, их различия, историю и производные. Кроме того, я попытаюсь сравнить GPL и BSD и рассказать, почему оригинальная BSD-лицензия несовместима с GPL.
UPD: обновлены разделы «Original BSD license» и «ISC license (OpenBSD license)»
Наверное, всем известно, что BSD расшифровывается как «Berkeley Software Distribution». Это название пакета программ, которые собрал Билл Джой, выпускник Калифорнийского Университета Беркли, как приложение к шестой версии операционной системы UNIX. В 1983 году, согласно wiki, пакет 2.9BSD уже являл собой не просто пакет программного обеспечения, но полноценную операционную систему, представляющую из себя модифицированную UNIX v7. Таким образом, «BSD» стало означать «BSD UNIX» и в таком значении эта аббревиатура дожила до наших дней.
С лицензией BSD связана любопытная история, описание которой расположено здесь. Вкратце, уже 4.3BSD в 1986 году содержала в себе отсылки к лицензии BSD в виде комментариев в исходном коде. Но, в силу неких причин, сам текст лицензии не был приложен к дереву проекта. И только 4.4BSD вышедшая в 1994 году содержала в себе полный текст оригинальной лицензии BSD, который (согласно источнику) датируется 1990 годом.
Впрочем, другой источник сообщает о том, что лицензия была использована еще в 1980 году. Как бы то ни было, на сегодняшний день существует несколько вариантов BSD-лицензий.
Это первый вариант лицензии, который принято называть лицензией 4-ех пунктов (по количеству пунктов условий в тексте). Лицензия разрешала свободное использование и распространение исходных или бинарных кодов с модификациями или без, но с условиями, перечисленными в этих четырех пунктах. Условия эти гласили:
1. Распространенные копии исходного кода должны содержать копирайты указанные выше, этот список условий и отказ от ответственности указанный ниже.
2. Распространенные копии бинарного кода должны воспроизводить копирайты указанные выше, этот список условий и отказ от ответственности указанный ниже в документации и/или других материалах поставляемых с распространяемым пакетом.
3. Все рекламные материалы, ссылающиеся на возможности или использование этого ПО, должны демонстрировать следующее уведомление: Этот продукт включает ПО, разработанное Университетом Калифорнии, Беркли и помогавшими лицами.[1]
4. Ни наименование Университета, ни имена соучастников не могут быть вписаны или использованы для продвижения продуктов произведенных на основании этого программного обеспечения без специального предварительно написанного разрешения.
Эта версия лицензии была подвергнута критике и Ричардом Столлманом, автором лицензии GPL. К сожалению, третий пункт привел к тому, что разные разработчики, выпуская свои продукты под лицензией BSD, заменяли слова в нем на свою организацию. Таким образом, компиляция нескольких, порой многих, разнообразных частей кода в одном проекте, приводила к большому списку обязательных ссылок на копирайты разных компаний и разработчиков при размещении рекламных объявлений (есть сведения, что цифра подобных обязательных копирайтов доходила до 75 штук). Именно из-за третьего пункта оригинальная BSD-лицензия не совместима с GPL лицензиями и коды выпущенные под ней не могут быть использованы в GPL-проекте.
Проблема с третьим пунктом была решена в 1999 году, когда 22 июля было выпущено обращение Вильяма Хоскинса директора отдела по лицензированию Университета Беркли, в котором отменялся третий пункт лицензии для всех продуктов BSD. Согласно этому документу, более не требовалось включать ссылку на Университет Беркли в своих рекламных материалах.
Таким образом, возникла пересмотренная лицензия BSD, известная так же как лицензия 3-ех пунктов. Этот вариант лицензии стал совместим с лицензиями GPL, что, несомненно, имело важные последствия. Теперь коды обеих лицензий, собранные вместе, можно было выпускать в одном продукте под одной GPL лицензией.
Эта разновидность лицензии основана на 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.
Эта лицензия так же известна как лицензия 2-ух пунктов. По сравнению с модифицированной BSD-лицензией в этой лицензии убран пункт условий о Университете Беркли. Лицензия родилась при разработке проекта FreeBSD — операционной системе на базе UNIX. Лицензия совместима с GNU GPL.
В 1995 возникла очередная вариация UNIX, которую основатели назвали OpenBSD. Для ее распространения использовалась лицензия созданная Internet Software Consortium, которая была схожа с BSD-лицензией двух пунктов (FreeBSD), но по сути убирала эти два пункта, так как согласно Бернской конвенции об охране литературных и художественных произведений, которая вступила в силу в США с 1 марта 1989 года, они уже не требовались. В итоге лицензия стала представлять собой, кроме отказа от ответственности, одно предложение «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-лицензиями.
По своей сути все лицензии BSD не являются copyleft-лицензиями. То есть они не требуют от производного кода быть свободным. Все лицензии, за исключением самой первой оригинальной, совместимы с GPL-лицензиями, но это не мешает разгораться спорам о том, какая из форм лицензий лучше или хуже, какая лицензия более свободна или какая более хорошо влияет на мир и имеет будущее.
GPL и BSD олицетворяют собой две точки зрения на мир свободного программного обеспечения. Первая считает, что ПО должно быть свободным и порождать свободное ПО. «Свобода или Смерть» — лозунг Столлмана как нельзя лучше отражает смысл этой точки зрения. Вторая точка зрения предполагает, что свобода должна заключаться и в том, чтобы делать несвободное ПО. Это более либеральная точка зрения. По сути, здесь возникает философский вопрос: можно ли считать свободой разрешение на ограничение свободы.
На самом деле хорошо, что большинство разработчиков не увлекаются и подходят к вопросу просто: если они хотят видеть части своего ПО только в подобных свободных продуктах, то они выбирают GPL, если им все равно, то они часто выбирают BSD-лицензии. Именно безразличие к судьбе своего ПО и характеризует отличный от GPL подход к свободе.
Лично я не вижу никаких противоречий к тому, чтобы эти два подхода существовали одновременно и использовались разными разработчиками. По моему, такое разнообразие в подходах к разработке и распространению своего ПО всего лишь отражает то, насколько разнообразен наш мир и взгляды на него. Чем больше взглядов в обществе, чем разнополярнее оно и разнообразнее, тем больше будет вариантов для лицензирования и распространения программного обеспечения. И это здорово. Не будьте консерваторами, смотрите на мир шире, будьте терпимыми и принимайте разнообразие как одно и свойств окружающего мира.
[1] Лицензия BSD
[2] The Clear BSD: Introduction
PS:
пожалуйста, если вы нашли неточность или ошибку в статье, сообщите в комментариях или мне на личную почту
Как это часто бывает, первая статья стала поводом к продолжительным спорам, суть которых сводилась к одному вопросу: «что лучше (для людей, программ, мира, будущего) GPL или BSD лицензии?». На мой взгляд, этот спор сродни вопросу «с какого конца разбивать яйцо?» и не имеет одного определенного ответа. Использование определенной лицензии — это дело каждого и разнообразие их — лишь положительный фактор, который дает разработчикам (и авторам) больше свободы и возможностей для распространения своих трудов.
В этой статье я постараюсь рассмотреть вторую сторону споров — лицензии BSD, их различия, историю и производные. Кроме того, я попытаюсь сравнить GPL и BSD и рассказать, почему оригинальная BSD-лицензия несовместима с GPL.
UPD: обновлены разделы «Original BSD license» и «ISC license (OpenBSD license)»
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, заменяли слова в нем на свою организацию. Таким образом, компиляция нескольких, порой многих, разнообразных частей кода в одном проекте, приводила к большому списку обязательных ссылок на копирайты разных компаний и разработчиков при размещении рекламных объявлений (есть сведения, что цифра подобных обязательных копирайтов доходила до 75 штук). Именно из-за третьего пункта оригинальная 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), но по сути убирала эти два пункта, так как согласно Бернской конвенции об охране литературных и художественных произведений, которая вступила в силу в США с 1 марта 1989 года, они уже не требовались. В итоге лицензия стала представлять собой, кроме отказа от ответственности, одно предложение «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:
пожалуйста, если вы нашли неточность или ошибку в статье, сообщите в комментариях или мне на личную почту