Копилефтные лицензии — когда подойдут, условия использования, последствия нарушений

Не рекомендeется использовать копилефтные лицензии для коммерческих продуктов. Причина —  если конкурент сделает ревизию кода и найдет копилефтную часть, то придется раскрыть код и сделать ПО общедоступным. Возможные последствия — судебные разбирательства, репутационный ущерб, убытки или вовсе крах бизнеса.

Чаще всего на рынке используют 6 видов копилефтных лицензий:

GNU GPL v3 (General Public License) — разрешает свободно использовать, менять и распространять ПО. Модифицированное ПО можно свободно распространять только под лицензией GPL v3. Условие — ваш продукт с заимствованным кодом должен быть под лицензией оригинала кода — GNU GPL v3. Занимает 16% всех Open source проектов.

Лицензию написали юристы — в GPL v3 подробно «разжевали» терминологию, учли проблему патентов, тивоизации и добавили информацию о последствиях нарушения условий. 

Тивоизация — ситуация, когда разработчик технически запрещает пользователям менять установленное на устройстве ПО. Например, из-за тивоизации нельзя дорабатывать программы на iPhone — можно использовать только ПО из App Store. Термин назвали в честь цифрового видеоплеера Tivo, который запрещал модифицировать установленное на нем ПО. Лицензия GPL v3 пресекла тивоизацию для бытовых товаров, но сохранила запрет на модификацию для важных устройств, где это критично — например, медицинских приборов и аппаратов для голосования.

Условия использования:

  • Включить в UI и в код уведомление об авторском праве, праве на патенты и товарные знаки. Условие актуально даже если заимствованный код не менялся. 
  • Включить текст лицензии на английском языке в уведомления в интерфейсе исполняемого файла, в файл license в репозитории. А еще — ссылку на текст лицензии, если в ПО не менялся исходный код.
  • Указать в исходном коде в какую часть внесли изменения, кто их автор и когда поменяли оригинал. 
  • Выложить в открытый доступ исходный код программы или информацию, где его можно получить. Требование нужно соблюдать, если вы доработали и продаете ПО в объектном коде. Не касается ситуации, когда производное ПО распространяется по SaaS-модели — без физического устройства, в облачном формате.
  • Предоставить неограниченному кругу лиц права на использование патента, если он есть в производном ПО.

GPL v2 — похожа на GPL v3, но в GPL v2 не учтена проблема тивоизации и патентов. Лицензия писалась разработчиком для разработчиков, поэтому ее текст более понятный и простой. Занимает 10% рынка Open source.

Условия использования: 

  • Включить в UI и в код уведомление об авторском праве.
  • Добавить текст лицензии на английском языке в уведомления в интерфейсе исполняемого файла, в файл license в репозитории. А еще — ссылку на текст лицензии, если в ПО не менялся исходный код.
  • Указать в исходном коде в какую часть внесли изменения, кто их автор и когда поменяли оригинал. 

LGPL v2.1 — «Lesser GPL», применяется только для лицензирования библиотек и дополняет GPL v.2. Доля среди всех Open source проектов — 6%.

Условия использования:

  • Отметить измененную часть кода, если была модификации библиотеки, указать авторов и дату изменений.

AGPL (Affero General Public License) — содержит такие же положения, как GPL v3 и GPL v2. Единственное отличие — лицензия касается и SaaS решений, когда производное ПО распространяется в облачном формате, без физического устройства. 

Условия использования — те же, что для GPL v3 и GPL v2.

Mozilla Public License (MPL) — одна из лицензий на свободное программное обеспечение. Версия 1.0 была разработана Митчел Бэйкер во время её работы адвокатом в Netscape Communications Corporation.

Версия 1.1 была разработана в рамках Mozilla Foundation совместно с Netscape Public License, которая включала в себя лицензию MPL 1.1 с дополнительным пунктом, в котором компании Netscape Communications разрешается использовать исходные тексты даже в несвободных версиях программы. Выпуск MPL 2.0 стал результатом двухлетнего процесса, в котором была пересмотрена MPL 1.1. Основные концепции в MPL 2.0 оставлены неизменными, но обновленный текст значительно упрощен, формализован и досконально проанализирован юристами. MPL содержит в себе черты модифицированной лицензии BSD и GNU General Public License.

MPL используется в качестве лицензии для Mozilla Suite, Mozilla Firefox, Mozilla Thunderbird и других программ, разработанных Mozilla. Она также была адаптирована другими разработчиками, в особенности Sun Microsystems, в качестве лицензии (Common Development and Distribution License) для OpenSolaris, версии Solaris с открытыми исходными кодами.

Считается, что лицензия MPL обеспечивает слабый копилефт. Исходный код, скопированный или изменённый под лицензией MPL, должен быть лицензирован по правилам MPL. В отличие от более строгих свободных лицензий, код под лицензией MPL может быть объединен в одной программе с проприетарными файлами. Например, Netscape 6 и 7 представляли собой проприетарные версии Mozilla Suite, а начиная с версии 8 — Mozilla Firefox. Таким образом, после приобретения Netscape AOL Time Warner последняя обладает эксклюзивными правами на эти проприетарные версии.

Microsoft Public License (Ms-PL) — лицензия Microsoft для распространения исходного кода своих проектов. Не вынуждает раскрывать исходный код программы — достаточно распространять производный код под лицензией Ms-PL. Используется в 3% всех Open source проектов.

Условия использования:

  • Распространять ПО с Ms-PL-компонентами в исходном коде только под этой же лицензией.
  • Распространять ПО с компонентами под Ms-PL в объектном коде можно только с лицензией, по условиям которой не нужно раскрывать исходный код ПО.

Невозможно не противоречить Ms-PL с классической проприетарной лицензией, потому что она предполагает сокрытие кода исходного и распространяется только в обьектном. Как вариант, можно разделить в коде условия для «своего» и свободного ПО.

  • Предоставить неограниченному кругу лиц права на использование патента, если он есть в производном ПО.
  • Не использовать товарные знаки и имена авторов в производном ПО.

Eclipse Public License v.1 — единственная лицензия, которая прямо разрешает коммерческое использование в определенных случаях. Используется для продуктов компании Eclipse Foundation — разработчика одноименной среды разработки IDE. Занимает всего 1% сферы Open source.

Условия использования похожи на MPL, но обязывают включить в текст вашей лицензии положения для охраны авторов оригинала от любых претензий третьих лиц и сведения, как получить исходный код производной программы. Важно оградить авторов Open source ПО от претензий третьих лиц, если ПО используется в коммерческих целях. Если возникнут проблемы, то придется отвечать на претензии самостоятельно. 

 

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

 Вот несколько примеров из судебной практики.

Германия. Юрист-программист Харальд Велте в проекте gpl-violations.org успешно засуживал компании, которые попадались на нарушении условий GPL. Например, программист подал иск на D-Link — в сентябре 2006 года Мюнхенский суд подтвердил, что компания нарушила условия GPL и обязал D-Link предоставить исходный код и покрыть судебные издержки. 

США. Free Software Foundation и Artiflex удалось через суд принудить Cisco Systems, Palm, Inc., раскрыть исходный код их ПО с GPL-компонентами кода.

Россия — дело Антона Мамичева против Veeam Software. Компания удалила его имя из программного кода и использовала программу в коммерческих целях. В ответ в ходе судебных разбирательств Антона обвинили, что он нарушил условия лицензии GNU GPL v2 и поэтому не имеет право защищать свои авторские права. После 7-летних разбирательств Антону удалось доказать, что даже если нарушены условия копилефтной GPL-лицензии, разработчик не теряет права на защиту своего ПО. 

  • Копилефтные лицензии очень опасны для проприетарных продуктов, даже не подпадающих под ограничения.
  • Решения судов полностью непредсказуемы, поэтому нужно избегать самого предмета спора.
  • Десять раз подумайте об использовании копилефтных лицензий наподобие GNU GPL.