Использование свободных лицензий при создании ПО: проблемные вопросы и риски разработчика (часть 3)

Использование свободных лицензий при создании ПО: проблемные вопросы и риски разработчика (часть 3)

Это третья часть серии, с предыдущей частью вы можете ознакомиться по ссылке.

На практике очень часто право использования программного обеспечения для разработки собственных программ приобретается на основании так называемых свободных лицензий. При этом слово «свободные» не означает, что для программы, распространяемой по такой лицензии, не существует никаких ограничений на ее использование. Определенные ограничения или требования к разработчикам, закрепленные в тексте свободной лицензии, должны учитываться и соблюдаться, в том числе если исходный текст или экземпляр программы были размещены в открытом доступе (например, в общедоступном репозитории на GitHub).

В связи с этим все свободные лицензии в зависимости от содержащихся в них условий принято разделять на две основные группы:

  • разрешительные (permissive license)

  • взаимные лицензии (reciprocal license, также используется понятие «copyleft»)

В разрешительных лицензиях предоставление лицензиату прав использования программы сопровождается минимумом условий (например, обязанностью указания автора при последующем распространении произведения и включением условий об исключении гарантий и ответственности).

Взаимные лицензии налагают на лицензиата более существенные обязательства, ключевым из которых обычно является обязанность распространять модификации программы на тех же условиях, на каких распространялась исходная программа, либо совместимых с ними (подробнее о совместимости различных взаимных лицензий – далее).

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

Самыми известными разрешительными свободными лицензиями являются Berkeley Software Distribution license (BSD, существует в двух основных версиях – «оригинальной» (BSD-4 Clause) и «модифицированной» (BSD-3 Clause)) и MIT.

Данные лицензии содержат минимум условий и предоставляют пользователю почти полную свободу использования программного обеспечения, распространяемого в соответствии с ними.

В свою очередь, взаимные лицензии (наиболее известными примерами являются лицензии, разработанные Фондом Свободного Программного обеспечения – GNU General Public License (GPL) (Существует несколько версий, новейшей является версия 3.0 (Version 3 /v3)), GNU Affero General Public License (AGPL), GNU Lesser General Public License (LGPL) (Существует несколько версий, новейшей является версия 3.0 (Version 3 /v3)) предоставляют разработчику гораздо меньшую свободу и «отравляют» собой созданную программу, поскольку использование модифицированной программы на условиях, отличных от условий соответствующей взаимной лицензии, будет являться неправомерным.

С учетом изложенного, в случае использования при разработке собственного программного обеспечения программ, распространяемых на условиях свободных лицензий, можно столкнуться с двумя основными проблемами, возникновение которых следует заранее предупредить путем разъяснения разработчикам специфики действия свободных лицензий различных видов.

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

Данную проблему можно конкретно рассмотреть на примере условий взаимной свободной лицензии GNU General Public License (GPL). Здесь и далее приведены выдержки из новейшей Version 3 в переводе на русский язык (), при этом необходимо иметь в виду, что переводы лицензии с английского языка не признаются официально действительными..

Данная лицензия (рассматривается Version 3) устанавливает в разделах 5 и 6, что модифицированные версии программы, распространяемой на условиях данной лицензии, также должны распространяться на условиях лицензии.

При этом под модификацией программы в силу раздела 0 Лицензии понимается «копирование или адаптация произведения целиком или в части, способом, требующим разрешения правообладателя, за исключением изготовления его точной копии», в связи с чем даже минимальные внесенные в первоначальную программу изменения будут считаться модификацией по смыслу Лицензии.

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

Так, при последующей передаче копий вашей программы в виде исходного текста вы должны:

в силу раздела 4 Лицензии:

  • приложить к каждой копии соответствующее уведомление об авторских правах способом, обеспечивающим ознакомление с ним пользователя

  • сохранить все уведомления о том, что к тексту применима Лицензия GPL и любые ограничения, добавленные в соответствии с разделом 7 лицензии

  • сохранить все уведомления об отсутствии каких-либо гарантий

  • предоставить всем получателям вместе с Программой копию лицензии

в силу раздела 5 Лицензии:

  • включить в исходный текст уведомления о произведенных вами изменениях с указанием их даты, сделанные способом, обеспечивающим ознакомление с ними пользователя

  • включить в исходный текст уведомления о том, что модифицированная программа распространяется на условиях настоящей Лицензии, а также об условиях, добавленных в соответствии с разделом 7, сделанное способом, обеспечивающим ознакомление с ним пользователя

Кроме того, согласно разделу 4 Лицензии вы вправе взимать плату за каждую копию, которую вы передаете (в том числе путем предоставления ссылки на скачивание копии программы с распространяющего сайта), или распространять копии бесплатно; также вы можете предложить поддержку или гарантию за отдельную плату.

Однако, обратите, пожалуйста, внимание, что аналогичное право будут иметь и все пользователи вашей программы, и вы, например, не сможете пресечь распространение копий вашей программы бесплатно, если какой-либо пользователь решит осуществить его, независимо от того, за плату вы сами распространяете копии или бесплатно. Из положений Лицензии GPL (как рассматриваемой Version 3, так и более ранних версий 1 и 2, неофициальный перевод на русский язык) следует, что соответствующие действия охватываются объемом разрешенного использования программы и не требуют дополнительного согласования с правообладателем.

Аналогичные условия применяются в соответствии с разделом 6 Лицензии и при распространении копий программы в форме объектного кода. Раздел 6 лишь конкретизирует формат, в котором вы должны будете предоставить исходный текст вашей программы пользователю.

Отдельно также следует отметить, что наложение на пользователей вашей программы дополнительных обязанностей, не предусмотренных Лицензией GPL, прямо запрещено разделом 10 Лицензии. Вы, в свою очередь, также не можете нарушать условия Лицензии при использовании заимствованной программы, даже если на вас наложены обязанности (будь то по решению суда, договору или иным способом), которые противоречат условиям Лицензии GPL (это следует из раздела 12).

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

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

Разрешительные свободные лицензии, напротив, не налагают на пользователя программы, распространяемой на их условиях, таких серьезных ограничений. Так, например, условия лицензии BSD-3 Clause устанавливают , что при использовании копии программы (в том числе при ее переработке и дальнейшем распространении производной программы в любой форме (как исходного текста, так и объектного кода)) необходимо сохранить в тексте исходного кода или документации, прилагаемой к версии модифицированной программы в форме объектного кода, уведомление об авторских правах, а также список условий распространения и дисклеймер об отказе от ответственности, содержащиеся в лицензии. Иные условия использования и распространения переработанной программы разработчик может устанавливать самостоятельно.

В то же время, возвращаясь к вопросу о распространении условий лицензии GPL на производные программные продукты, следует заметить, что необходимо учитывать и существующую позицию Фонда Свободного Программного обеспечения относительно добавления к первоначальной программе дополнительных модулей:

«Когда программа и ее внешние модули считаются единой комбинированной программой? ( #GPLPlugins )

Это зависит от того, как главная программа вызывает свои внешние модули. Если главная программа использует для этого fork и exec и они завязывают тесное общение через сложные структуры данных, общие или передаваемые туда и обратно, то они становятся единой комбинированной программой. Когда главная программа использует для вызова внешних модулей просто fork и exec, не завязывая тесного общения с ними, внешние модули остаются отдельными программами.

Если главная программа динамически компонуется с модулями и они вызывают функции друг из друга и разделяют общие структуры данных, мы убеждены, что они формируют единую комбинированную программу, которая должна рассматриваться как расширение и главной программы, и модулей. Если главная программа динамически компонуется с модулями, но взаимодействие между ними ограничено вызовом “главной” процедуры модуля с какими-то параметрами и ожиданием результата, то это предельный случай.

Применение общей памяти для обмена сложными структурами данных вполне эквивалентно динамическому связыванию»

C учетом данной позиции и дополнительных разъяснений Фонда Свободного Программного обеспечения, если главная (заимствованная) программа и разработанные вами модули составляют комбинированную программу, то это значит, что вы должны выпускать модули на условиях Лицензии. Если же архитектура вашей модификации позволит прийти к выводу о том, что разработанный вами модуль является отдельным от первоначальной программы, то право использования ваших модулей может предоставляться пользователям на условиях, отличных от Лицензии GPL.

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

Более того, исходя из буквального толкования положений Лицензии GPL, представляется, что внесение изменений в файл конфигурации первоначальной программы не является ее модификацией (внесением в нее изменений) в соответствии с Разделом 0 Лицензии, так как в нем предусмотрено, что «внесение изменений» в произведение означает копирование или адаптацию произведения целиком или в части, способом, требующим разрешения правообладателя, за исключением изготовления его точной копии.

При этом внесение изменений в настройки в файле конфигурации, на наш взгляд, входит в объем разрешенного использования программы, предусмотренный разделом 2 Лицензии, и не требует разрешения правообладателя, если указанные действия необходимы для того, чтобы пользователь программы мог запустить ее, и это прямо вытекает из функционала программы.

Продолжение следует, будем рады ответить на ваши вопросы в комментариях!

Авторы:

Алексей Переверзев, Младший юрист Semenov&Pevzner

Екатерина Смирнова, Управляющий партнер Санкт-Петербургского офиса Semenov&Pevzner

Использование свободных лицензий при создании ПО: проблемные вопросы и риски разработчика (часть 3)
33
Начать дискуссию