Свободные лицензии на программное обеспечение

Свободные лицензии на программное обеспечение

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

Код и авторское право

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

Для этих целей и были разработаны "свободные" или "открытые" лицензии (free or open licenses). Они представляют собой лицензионные соглашения, текст которых обычно хранится вместе с исходным кодом в репозиториях на сервисах для хостинга (таких как гитхаб).

Чтобы лицензия считалась “свободной” она должна позволять:
1. запускать программу в любых целях;
2. изучать работу программы и адаптировать её к своим нуждам (условие - доступ к исходному коду);
3. создавать и распространять копии программы;
4. улучшать программу и публиковать улучшения.

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

Среди свободных лицензий выделяют:
🟢пермиссивные (BSD, MIT, Apache);
🟢копилефтные строгие (GNU GPL);
🟢копилефтные слабые (LGPL, MPL);
🟢лицензии на передачу кода в общественное достояние (the Unlicense).

Пермиссивные лицензии

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

Среди пермиссивных лицензий можно выделить три наиболее известные: BSD, MIT и Apache.

BSD (Berkeley Software Distribution) License является одной из самых старых и популярных пермиссивных лицензий. Она предоставляет разработчикам право свободно использовать, модифицировать и распространять код. Основное требование BSD-лицензии - сохранение уведомления об авторских правах во всех копиях кода.

MIT License является очень простой свободной лицензией. Она позволяет использовать, модифицировать и распространять код в любых условиях, включая коммерческое использование. Как и в случае BSD, основное условие - сохранение уведомления об авторских правах.

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

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

Копилефт-лицензии и сильный копилефт

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

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

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

Самый известный пример копилефт-лицензии - GNU General Public License (GPL). Она предоставляет следующие права: право запуска программы с любой целью, право изучения того, как программа работает (с обязательным обеспечением доступа к исходному коду), право распространения копий, право модификации программы и выпуска модификаций в публичный доступ. При этом лицензия GPL требует, чтобы любые производные работы, основанные на ПО с этой лицензией, также были распространены под лицензией GPL.

Лицензия GPL это пример так называемого "сильного" или "строгого" копилефта. В отличие от него "слабый" копилефт предоставляет некоторые исключения и послабления при распространении производного ПО.

Слабый копилефт

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

Первый пример слабого копилефта - GNU Lesser General Public License (LGPL). Она позволяет использовать и внедрять код, лицензированный на условиях LGPL, в собственное (даже проприетарное) программное обеспечение. При этом отсутствует обязательное условие о предоставлении исходного кода собственных компонентов под данной лицензией. Код под лицензией LGPL обычно используется в форме разделяемой библиотеки, так что существует четкое разделение между проприетарными компонентами и LGPL-компонентами.

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

Таким образом слабый копилефт, в отличие от сильного, делает код менее "заразным" для производного ПО и позволяет более широко использовать такой код в коммерческих проектах

Отказ от прав и передача ПО в общественное достояние

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

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

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

"This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means."

Также существуют альтернативные варианты, такие как лицензия CC0 (Creative Commons Zero). Она предоставляет аналогичные права. Её первые два абзаца выглядят так:

"No Copyright. The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission."

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

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

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

Спасибо за внимание. Чаще всего я выкладываю посты в телеграм канале

22
1 комментарий

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

Ответить