Наверняка все так или иначе сталкивались с программным обеспечением с открытым кодом. У большинства людей такое ПО ассоциируется со словом «бесплатно», но на самом деле в наиболее популярных open source-лицензиях ничего не говорится о цене программ, распространяемых таким образом. Открытый код означает именно то, что написано, – исходный код таких программ доступен для ознакомления и модификации, а лицензии описывают, что можно делать с этим кодом, а чего делать нельзя.
На конечных пользователей выполняемых программ основные open source-лицензии чаще всего не накладывают никаких особых ограничений и в какой-то мере способствуют распространению заблуждения, что с исходным кодом можно делать все что душе угодно. Жертвами этого заблуждения становятся не только неопытные новички, но и маститые монстры.
Так, наиболее известным прецедентом нарушения лицензии GPL является случай, когда компания Linksys (подразделение Cisco Systems) использовала операционную систему Linux и другие наработки в своем знаменитом маршрутизаторе WRT54G, но не выполнила требования лицензии.
Сложно сказать, насколько реальна угроза судебного преследования за нарушение open source-лицензии в российских реалиях (да и в США пока еще не было реальных судебных процессов, закончившихся вынесением приговора), но вряд ли стоит строить свой легальный бизнес на нелегально используемом ПО. Для того чтобы избежать неприятных казусов, мы и попытаемся рассмотреть наиболее часто встречающиеся open source-лицензии и сделаем это с позиции веб-разработчиков и интеграторов, а также их клиентов.
Лицензии, описанные в этой статье, являются наиболее популярными в среде продуктов, ориентированных на веб-разработчиков и интеграторов, но это далеко не полный список встречающихся лицензий. Полный список «официально» одобренных open source-лицензий можно найти на сайте opensource.org.
GPL
До 70% open source-ПО выпускается под GPL GNU GPL (GNU General Public License) (не официальный перевод на русский) — одна из наиболее распространенных и в то же время неоднозначных open source-лицензий. Под этой лицензией распространяются такие монстры, как ядро Linux, MySQL (выпускается под двойной лицензией) и многие другие. Большинство open source веб-систем, таких как Joomla, WordPress, Drupal, osCommerce и множество других, а также многие компоненты, используемые веб-разработчиками, выпускаются под GPL. По разным данным, в мире до 70% open source-ПО выпускается под GPL.
Основная цель, которую преследовали создатели GPL, — защитить открытость свободного ПО. Иными словами, GPL призван защитить разработчиков от того, что их наработки будут использованы создателями закрытого ПО в своих продуктах. Основное условие GPL: продукт, использующий код, защищенный этой лицензией, должен распространяться также под GPL, то есть помимо прочего исходный код должен быть доступен получателю такого продукта и он может делать с этим кодом все что угодно в рамках GPL.
Таким образом, если вы создаете проект на основе кода, защищенного GPL, вы обязаны распространять свой продукт под GPL. И распространение в данном случае не означает только лишь массовую дистрибуцию «коробочного» продукта. Под этот термин подпадает также и передача продукта заказчику специализированного ПО. Единственная ситуация, в которой требования GPL не являются обязательными, — отсутствие факта распространения как такового. То есть вы используете модифицированный код исключительно в личных целях или в целях компании, в которой работаете.
LGPL
GNU LGPL (GNU Lesser General Public License) (не официальный перевод на русский) отличается от GPL тем, что позволяет использовать продукты LGPL в проектах, распространяемых под другими лицензиями. То есть условия, сходные с GPL, распространяются только на ту часть производного продукта, которая заимствована из продукта, защищенного LGPL.
Изначально создатели GPL и LGPL – Free Software Foundation – предполагали использование GPL в готовых продуктах, а LGPL — в библиотеках для разработчиков, но на данный момент такое разделение не соответствует действительности.
Наиболее известный продукт, выпускаемый под LGPL, – OpenOffice.org.
BSD
BSD — очень либеральная и очень короткая лицензия BSD (Berkeley Software Distribution) лицензия (по-русски) представляет противоположный фланг лицензирования open source-продуктов. Это очень либеральная и очень короткая лицензия. От разработчиков, использующих ПО, распространяемое под лицензией BSD, требуется лишь указывать в документации, что в продукте используются разработки создателей оригинального программного обеспечения и запрещается использовать имена (или названия) создателей этого ПО в рекламных целях без их письменного согласия. Также необходимо включать стандартный текст об ограничении ответственности разработчиков за последствия использования данного ПО.
Таким образом разработки, распространяемые под BSD, можно смело использовать в своих не open source-проектах при соблюдении этих несложных условий. Так поступают и такие гранды «закрытого» ПО, как Microsoft и Apple.
MIT
Лицензия MIT (Massachusetts Institute of Technology), как и BSD, является «разрешающей» лицензией. То есть ПО, лицензируемое под MIT, можно использовать в закрытых продуктах. Единственным существенным отличием от BSD является отсутствие пункта, запрещающего использовать название продукта и имена создателей в рекламных целях.
X Window System (X11), PuTTY, Ruby on Rails — наиболее известные проекты, распространяемые под MIT.
Следует иметь в виду, что тексты BSD- и MIT-лицензий могут свободно модифицироваться, и поэтому часто встречаются измененные версии этих лицензий.
Далеко не все лицензии предоставляют полную свободу действий Как вы могли убедиться, далеко не все лицензии предоставляют программистам и интеграторам полную свободу действий. «Ограничительные» лицензии, такие как GPL, накладывают ряд серьезных ограничений на сферу использования лицензируемого ПО. Поэтому, планируя свой продукт или проект, необходимо серьезно обдумать, где и как вы планируете его использовать и распространять. Если ваш продукт в перспективе имеет шансы выйти за рамки внутреннего проекта или изначально ориентирован на распространение (пусть даже и только одному клиенту) и в ваши планы не входит лицензирование вашего ПО под лицензией GPL, необходимо отказаться от использования кода, распространяемого под этой лицензией.
Но не стоит излишне бояться выпускать свой продукт под GPL. Многие компании не видят в производстве open source-ПО ничего, кроме благотворительности. Тем не менее GPL не запрещает продавать такое ПО. В огромном сообществе open source-разработчиков вполне могут найтись энтузиасты, которые совершенно бескорыстно добавят новые возможности к вашему продукту, в то время как вам пришлось бы потратить на это уйму времени и средств. Часто вам не придется израсходовать и части денег, которые пришлось бы потратить на раскрутку закрытого продукта, – сообщество энтузиастов бескорыстно разнесет весть о новом хорошем продукте. Вы также сможете собирать пожертвования на дальнейшие разработки как от мелких пользователей, так и от крупных компаний. Заинтересованные пользователи нередко с удовольствием спонсируют разработку интересующих их функций. Так что в итоге нередко на open source-проекте можно заработать не меньше, а часто и больше, чем распространяя тот же продукт в закрытом виде. Особенно это актуально для малобюджетных проектов.
Описанный выше прецедент с маршрутизатором компании Linksys изначально вроде бы навредил компании, но в итоге выпуск исходного кода прошивки этого продукта привел к невероятному взлету популярности модели у энтузиастов. Появилось несколько проектов, разрабатывающих альтернативные версии прошивок, и в итоге Linksys, скорее всего, не только не пострадал материально, но и весьма пополнил свою копилку, выпустив ПО под GPL.
Не стоит бояться open source-продуктов, но следует внимательно изучать лицензионные соглашения и избавиться от заблуждения, что open source = вседозволенность.
Ссылки по теме
Статья получена: hostinfo.ru