02 июля 2021

⚖ Что такое лицензирование ПО и как оно работает?

Более 7 лет работы в IT-сфере. Системное администрирование, frontend разработка, написание скриптов на Python.
Рассказываем о классификации лицензий и даем практические советы по лицензированию программного обеспечения.
⚖ Что такое лицензирование ПО и как оно работает?

Лицензия на программное обеспечение является юридическим документом, регулирующим использование и/или перераспределение продукта. Другими словами, лицензионное соглашение (licence agreement) – это договор между автором и пользователем, который прилагается к ПО в виде текстового документа, для защиты интеллектуальной собственности разработчика и ограничения претензий.

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

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

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

Классификация лицензий

Условно все лицензии на ПО можно разделить на две большие группы: свободного и несвободного использования.

⚖ Что такое лицензирование ПО и как оно работает?
Свободное ПО (СПО) с открытым исходным кодом или FOSS (Free and Open Source Software) подразумевает отсутствие обязательной оплаты пользователя за функциональность и фокусируется на предполагаемых сильных сторонах модели одноранговой разработки.

Подчеркиваем: свободными называются только продукты с открытым исходным кодом, которые любой желающий может свободно использовать, копировать, изучать и изменять любым способом. Предполагалось, что люди будут добровольно улучшать его дизайн, но фактически свободное ПО стало играть заметную роль в индустрии, только когда им заинтересовались корпорации и вложили средства в разработку. Скажем, среди заметных контрибьюторов ядра GNU/Linux вы найдете не только RedHat, но и IBM, Google и даже Microsoft.

Свободное ПО не стоит путать с бесплатным
Да, за право его использования с вас скорее всего никто денег не попросит, но, скажем, внедрение и поддержка – коммерческие услуги. Более того, свобода ограничивается доступом к исходным текстам, а бинарные сборки – отдельные продукты, которые тоже могут быть коммерческими, если это не противоречит лицензии. Пример такого продукта – Red Hat Enterprise Linux (или другой коммерческий дистрибутив).

Стоит также отметить, что не любое открытое ПО является свободным: доступ к исходному коду (на определенных условиях) могут предоставлять даже создатели коммерческих продуктов. Пример – коммерческая ОСРВ QNX Neutrino, большая часть исходных текстов которой открыта правообладателем в рамках проекта Foudry27.

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

  • инициатива Open Source (OSI)
  • Фонд свободного программного обеспечения (FSF)

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

Под несвободным или проприетарным ПО обычно понимаются любые (включая бесплатные) программы, которые не соответствую критериям свободных. Условия использования таких продуктов могут подразумевать получение выгоды издателем.

Обычно без явного принятия лицензии проприетарное программное обеспечение использовать нельзя.

Проприетарное ПО в свою очередь делится на коммерческое и условно бесплатное. Коммерческое, как следует из названия, распространяется за деньги или по бартеру, а условно бесплатное распространяется бесплатно, но, возможно, с определенными ограничениями: например, без права копирования, изменения, передачи, декомпиляции, доступа к некоторым функциям и т. д.

Терминология и факторы

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

При определении характеристик лицензирования также часто используются следующие критерии:

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

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

<a href="https://web.archive.org/web/20170704001242/https://www.linuxvoice.com/the-fight-for-freedom/" target="_blank" rel="noopener noreferrer nofollow">Спектр лицензирования свободного программного обеспечения</a> по Дэвиду А. Уиллеру
Спектр лицензирования свободного программного обеспечения по Дэвиду А. Уиллеру

Лицензии Open Source

FSF предлагает 4 критерия соответствия «свободного программного обеспечения»:

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

Несмотря на обилие видов и функций лицензий Open Source их можно условно свести к 3 категориям.

Лицензия общественного достояния

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

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

  • Являющееся общественным достоянием ПО может не всегда соответствовать лучшим методам кодирования или не соответствовать стандартам безопасности.
  • Программное обеспечение, не подпадающее под определенные условия лицензирования, не всегда является кодом общественного достояния. Стоит убедиться, что оно действительно является общественным достоянием, прежде чем копировать, повторно использовать или распространять его.
  • Бернская конвенция гласит, что все произведения, за редким исключением, должны быть защищены авторским правом в течение по крайней мере 50 лет после смерти автора, но стороны свободны обеспечить более длительные сроки.

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

Разрешающая лицензия FOSS (GNU/LGPL)

Разрешительная лицензия на программное обеспечение имеет минимальные ограничения и предполагает отказ от предоставления гарантий.

В эту категорию входят: GNU, LGPL, BSD, MIT, Apache, WTFPL.

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

Copyleft

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

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

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

К copyleft лицензиям относятся IBM Public License, Ms-PL, GNU GPL, GNU AGPL.

Одними из самых популярных среди лицензий Open Source лицензий являются GPLv3 и его надстройка LGPLv3. GNU GPL – это копилефтная лицензия, и требует, чтобы исходные коды производных работ были открытыми под ней же. Она позволяет распространять продукт за деньги, но только при условии предоставления исходников.

Чтобы не вдаваться в подробности совместимости лицензий приведем ссылку на таблицу совместимости лицензий GNU.

Стоит отметить, что разработка Open Source – это не просто философия в духе Робин Гуда. Участие в проектах с открытым исходным кодом несет множество преимуществ для программистов. Рекомендуем ознакомиться с несколькими из них в статье «Open Source проекты в резюме: 5 причин писать открытый код».

Лицензии на проприетарное ПО

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

Лицензии на проприетарное ПО условно делятся на 3 основные группы по типу ограничений: условно бесплатная, собственная лицензия и коммерческая тайна.

Классификация типу ограничений и монетизации:

  • бессрочная/срочная лицензия:
  • плавающая лицензия;
  • лицензия по подписке;
  • лицензия со счетчиком;
  • лицензия на функцию;
  • пробная лицензия;
  • лицензия на проект;
  • лицензия на устройство;
  • лицензирование пользователей;

Разберем немного подробнее основные различия этих лицензий.

Условно бесплатная или некоммерческая лицензия

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

К лицензиям этого типа относятся: лицензия на исследования Java (JRL) и Aladdin Free Public License (AFPL).

Собственная лицензия

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

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

Коммерческая тайна

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

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

Таблица сравнения лицензий

Таблица на основе <a href="https://web.archive.org/web/20140122163130/http://www.redhat.com/f/summitfiles/presentation/May31/Open%20Source%20Dynamics/Troan_OpenSourceProprietyPersp.pdf" target="_blank" rel="noopener noreferrer nofollow">материалов Марка Уэббинка</a>
Таблица на основе материалов Марка Уэббинка

Способы составления лицензии

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

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

  • разрешение и условия использования, копирования и модификации;
  • ограничения;
  • права интеллектуальной собственности;
  • гарантии или отказ от гарантий;
  • условия распространения и сублицензирования;
  • указание авторства.

Все эти моменты стоит учесть при выборе или составлении лицензии и явно в ней указать.

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

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

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

Заключение

Мы рассказали только об основных принципах лицензирования ПО. Статья не охватывает все доступные и применяемые лицензии, а лишь предлагает ознакомиться с их главными особенностями и функциями.
***

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

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ