BSD и GPL лицензии. Сравнение и обзор
Содержание:
Почему именно они?
На данный момент GPL и BSD две самые распространенные свободные лицензии, которые пользуются особой популярностью у разработчиков и имеют свою базу почитателей, которые ведут споры о том, чья лицензия лучше. На мой сугубо субъективный взгляд сравнивать эти лицензии, пытаясь определить "победителя" не совсем верно. Несмотря на то, что эти две лицензии свободные, имеют в целом общую цель, они все же разные. Разные по отношению к разработчикам и продукту лицензирования. И, если открыть GitHub и посмотреть работы разработчиков, то очень скоро вы обнаружите, что большая часть программ не лицензированы вовсе, из чего встает логичный вопрос: "А так ли нужна эта лицензия и зачем заморачиваться над ней?"
На этот вопрос я отвечу просто, хотя, может быть, это не совсем правильно. Многие разработчики сервиса не планируют распространение своего кода в других проектах или как отдельный продукт. Они пишутся либо из соображения обучения (как я писал скрипт настройки на примере elementary OS), так и вовсе из альтруистических соображений, или для своего портфолио, чтобы выгодно выделяться перед работодателями.
Тут стоит пояснить, что значит свободный код (или как его часто называют Open Source) и проприетарный. Свободный подразумевает собой возможность просмотреть кодовую базу любого проекта, проследить ее начало и конец. Идея такой цели проста: пользователь в праве знать что он использует и в случае чего, либо модифицировать программу, удалив или добавив свои изменения в коде, либо отказаться от его использования. Open Sourсe идеи популярны у разработчиков и энтузиастов, обеспокоенные своей конфиденциальностью, ведь подобный тип распространения программы усложняет (но не сводит к нулю) введения телеметрических и шпионских программ, так как "все на виду". Проприетарные же программы являются противоположностью открытого кода, так как возможность просмотра содержимого закрыта владельцем. Такой метод широко распространен у больших корпораций, такими как Apple, Sony, Oracle, Google, Yandex и прочие. Закрытие кода можно оправдать нежеланием кражи кодовой базы конкурентами.
GPL (General Public License)
GPL или как ее еще называют GNU GPL (Gnu is not Unix General Public License) появился у проекта GNU 1 февраля 1989 году (первая версия лицензии. Всего их четыре). Целью GNU является распространение свободного от проприетарных элементов программного обеспечения. Полная кодовая открытость. Эту идею популярно обозревает и данная лицензия. Если брать выжимку всех версий, то получаем следующее:
GNU GPL Version 1
- предоставление исходных кодов, доступных для изучения, к бинарным кодам публикуемым с данной лицензией;
- наследование лицензии в случае модификации исходного кода, то есть модифицированный или объединенный с другим код в результате так же должен быть выпущен под лицензией GNU GPL, следовательно, быть доступным для модификации любым желающим.
Эта лицензия призвана заменить собой закон об авторских прав на программное обеспечение, которое запрещает изменять код (ссылка на лицензию)
GNU GPL Version 2
В этой версии идеи свободного ПО начали укореняться и в какой-то степени радикализироваться. Выпущенная в 1991 году, требует, чтобы конечный пользователь программы мог свободно изменять код и выкладывать изменения в свободный доступ под той же лицензией. В случае, если это невозможно, выкладывать программу под этой лицензией запрещено.
GNU LGPL Version 2.1 (и в дальнейшем 3.0)
Вышла в 1999 году. Эта лицензия разрешает использовать свободные библиотеки в проприетарных программах, используя в своих коммерческих интересах. Это некий компромисс, так как под GPL лицензией находятся множество незаменимых для разработчиков библиотек. Но данное послабление действует только на библиотеки и запрещает обратное: использовать проприетарные библиотеки в Open Source программах.
GNU GPL version 3
Последняя на данный момент версия лицензии. Но в отличие от других версий эта призвана не сколько "обозначать" права на пользование свободным ПО, сколько защищать авторов данной лицензии от патентных троллей и прочих нападок на интеллектуальную собственность со стороны компаний и юрлиц.
Кроме того, GPL 3.0 борется с таким явлением как «тивоизация», когда устройство, на котором установлено программное обеспечение под лицензией GPL, не позволяет вам в силу различных причин модифицировать его. GPL v3.0 запрещает тивоизацию для товаров народного потребления (оставляя возможность тивоизации для медицинских и других важных устройств).
BSD License (Berkeley Software Distribution License)
Является противоположностью GPL и частым объектом нападок сторонников ФСПО (Фонд свободного программного обеспечения). Тогда как GPL более радикализирована по отношению к правам, BSD, напротив, разрешает закрывать код проектов под их лицензией. За счет этого существуют два лагеря пользователей: одни считают BSD лицензию истинно свободной, так как она разрешает даже закрывать свой код, а другие убеждены, что эта лицензия лишь паразит на "теле" Open Source. Так это или нет, философский вопрос и добиться однозначного ответа, пожалуй, возможно, если ответить на вопрос "Что есть свобода и где ее ограничения".
Свое название лицензия берет из Калифорнийского Университета Беркли и значит "Дистрибуция программного обеспечения Беркли" (Berkeley Software Distribution). Эту дистрибуцию, то есть набор программ, собрал студент университета Беркли Билл Джой для операционной системы Unix (предком BSD и Linux систем). Дата появления лицензии спорна, по некоторым источникам - это 1990, а по другим 1986. Как и GPL, она имеет несколько версий.
Original BSD License
Или как ее называли "лицензия четырех пунктов". Она разрешала свободное распространение исходного и модифицированного кода при соблюдении четырех пунктов:
1. Распространенные копии исходного кода должны содержать копирайты указанные выше, этот список условий и отказ от ответственности указанный ниже.
2. Распространенные копии бинарного кода должны воспроизводить копирайты указанные выше, этот список условий и отказ от ответственности указанный ниже в документации и/или других материалах поставляемых с распространяемым пакетом.
3. Все рекламные материалы, ссылающиеся на возможности или использование этого ПО, должны демонстрировать следующее уведомление: Этот продукт включает ПО, разработанное Университетом Калифорнии, Беркли и помогавшими лицами.
4. Ни наименование Университета, ни имена соучастников не могут быть вписаны или использованы для продвижения продуктов произведенных на основании этого программного обеспечения без специального предварительно написанного разрешения.
Эта лицензия была критически принята сторонниками GPL, а третий пункт порождал неразбериху в ссылках, к тому же, многие разработчики просто вносили свои имена вместо настоящих. Третий пункт обязывал ссылаться на разработчиков при использовании одной части кода в рекламных кампаниях продукта, а таких частей могло быть и несколько десятков от разных разработчиков, поэтому данный пункт был отрицательно принят сообществом, а также из-за третьего пункта лицензия BSD несовместима с лицензией GPL.
Revisited BSD License
Вторая версия лицензии, где третий пункт был отменен. Вышла она в 1999, когда директор по лицензированию университета Беркли Вильям Хоскинс официально отменил проблемный пункт, что больше не обязывало ссылаться на университет Беркли в рекламе. Таким образом, Revisited BSD License стала называться "лицензией трех пунктов" и стала совместимой с лицензией GPL.
Clear BSD License
Основана на Revisited BSD License и создана компанией MetaCarta. В этой лицензии был всего лишь один дополнительный пункт, по которому эта лицензия не предоставляет патентных прав на продукт. Это объяснено желанием исключить неопределенность по патентам в BSD.
FreeBSD License
Эта лицензия так же известна как лицензия 2-ух пунктов. По сравнению с модифицированной BSD-лицензией в этой лицензии убран пункт условий о Университете Беркли. Лицензия родилась при разработке проекта FreeBSD — операционной системе на базе UNIX. Лицензия совместима с GNU GPL.
ISC License (Internet Software Consortium License)
Internet Software Consortium создал свою лицензию, схожую с лицензией FreeBSD, за исключением того, что она убрала пункты об ответственности и тем самым более не несет какой-либо ответственности за ПО под ее лицензией. Позже, в 1995 году появилась операционная система OpenBSD, которая полностью переняла себе эту лицензию, из-за его иногда называют OpenBSD License.
Главные отличия BSD и GPL
Одним из главных отличий является отношение лицензии к программному обеспечению. Два противороложных взгляда на то, каким должен быть код, вызывают кучу споров по теме истинной правильности той или иной лицензии. Одни называют лицензию из университета Беркли слишком аморфной, потакающей корпорациям, а лицензию ФСПО слишком радикальной. BSD позволяет взять код под ее лицензией, изменить ее под свои нужды и закрыть, продавая ее. Так сделали Sony: взяли ядро FreeBSD и изменили ее под свои нужды, создав операционную систему для PlayStation, таким же образом поступили и Apple, чья система частично основана на FreeBSD или Nintendo. При этом, им вменяется и самими разработчиками, что они "берут, но не отдают обратно", тем самым паразитируя на продуктах лицензии BSD. GPL же относится порицательно к подобным действиям и будто бы "приобщает к общественности" все программы под своей лицензией, фактически лишая права собственности на свой код, но это на первый взгляд. На деле же она запрещает закрывать код, а те, кто берут и изменяют части куска кода под их лицензией, обязательно должны выложить модифицированную версию под той же лицензией.