Краткое описание лицензий с открытым исходным кодом

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

 

Что такое лицензии с открытым исходным кодом?

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

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

 

Исходный код и объектный код — в чем разница

Программист пишет исходный код. Это текстовый документ (или файл), написанный на языке, понятном для людей, и файл написанный на каком-то языке программирования. Однако машины (компьютеры) на самом деле не могут читать исходный код в том виде, в каком он написан. Чтобы сделать его машиночитаемым, компьютер должен скомпилировать исходный код в машиноисполняемый код, то есть в объектный код. Объектный код записывается в виде двоичных цифр (0 и 1), а процесс генерации двоичного кода называется «компиляцией». Исходный код может быть одинаковым в разных системах, но каждая машина может скомпилировать его в разный объектный код.

 

Два основных типа лицензий с открытым исходным кодом: Копилефт (авторское лево) и Вседозволяющая

Копилефт и Вседозволяющая (или Разрешительная) — это две основные категории лицензий с открытым исходным кодом. Это не названия реальных лицензий, а категории, на которые подразделяются конкретные лицензии.

  1. Лицензии Копилефт (авторское лево) — это тип лицензии с открытым исходным кодом, которая требует от пользователя применения той же лицензии к своей версии продукта. Это означает, что если пользователь модифицирует и распространяет программное обеспечение, он должен сохранить лицензию с открытым исходным кодом.
  2. Вседозволяющие (Пермиссив, Permissive) лицензии настолько гибки, насколько это возможно. Обычно они имеют мало (или вообще не имеют) ограничений.

 

Наиболее распространенные типы лицензий с открытым исходным кодом

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

 

Лицензия Apache

Лицензия Apache — это лицензия с открытым исходным кодом, выданная организацией Apache Software Foundation. Под данной лицензией вы можете использовать, изменять или распространять любой продукт, лицензированный Apache. Основные моменты: если для производной работы использованы рекламные материалы, для них не обязательно указывать ссылку на лицензию Apache, хотя указание авторства должно оставаться в документации. Лицензия также позволяет получить патентные права на ПО/продукт.

 

Беркли распространение программного обеспечения (BSD — Berkeley Software Distribution)

Существует два типа BSD лицензии:

  1. Модифицированная лицензия BSD (BSD-3-Clause)
  2. Упрощенная BSD лицензия, также называемая лицензией FreeBSD (BSD-2-Clause)

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

 

Общая лицензия на разработку и распространение (CDDL — Common Development and Distribution License)

Лицензия CDDL — это лицензия с открытым исходным кодом, созданная компанией Sun Microsystems (Oracle). В рамках CDDL вы можете воспроизводить и распространять оригинальные или производные работы лицензионного программного обеспечения. Однако вы не можете вносить изменения или удалять какие-либо уведомления об авторских правах, патентах или товарных знаках. Кроме того, пользователь должен сохранять уведомления или текст со ссылкой на участников или разработчиков.

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

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

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

 

Публичная лицензия Eclipse (EPL — Eclipse Public License)

Это лицензия с авторским левом (копилефт), выданная организацией Eclipse Foundation. Цель EPL — защитить авторов от юридических проблем, если компания использует их компонент в коммерческом продукте. Лицензия также предполагает выдачу патента.

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

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

 

Стандартная общественная лицензия GNU (GPL — GNU General Public License)

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

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

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

 

Уменьшенная Стандартная общественная лицензия GNU (LGPL — Lesser General Public License)

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

 

Публичная лицензия Microsoft (Ms-PL — Microsoft Public License)

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

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

 

Лицензия Массачусетского технологического института (MIT — Massachusetts Institute of Technology)

Лицензия MIT является одной из наиболее гибких лицензий с открытым исходным кодом и предоставляет все права конечному пользователю, которые ожидаются от лицензии с открытым исходным кодом: копирование, распространение, слияние, изменение, и т. д. В основном лицензия известна тем, что она не включает, — а именно пункт о рекламе. Кроме того, она позволяет использовать имя владельца авторских прав в рекламном контенте.

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

 

Публичная лицензия Mozilla 2.0 (MPL 2.0 — Mozilla Public License 2.0)

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

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

 

 

Вместо эпилога

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

 

Recent Posts

Как выбрать мастера для перетяжки мебели?

Выбор мастера для ремонта и перетяжки мебели — задача, которая требует вдумчивого подхода. Ведь от…

2 дня ago

Что лучше выбрать для хостинга: сервер VPS Windows или VPS Linux?

Выбор идеального хостинга под свой сайт может быть довольно запутанным делом, особенно когда существует так…

1 неделя ago

Лоуренс Питер

Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер  

2 недели ago

Что такое Черное СЕО (Black Hat SEO) — вся нужная информация

Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…

2 недели ago

Права категории C: кому они нужны и как их получить?

Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…

3 недели ago

Уилл Смит

Хорошие люди принесут вам счастье, плохие люди наградят вас опытом, худшие — дадут вам урок,…

3 недели ago