Написать пост

В чём разница между популярными Open Source лицензиями? Объясняет Github

Аватар Пётр Соковых

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

Обложка поста В чём разница между популярными Open Source лицензиями? Объясняет Github

В сентябре Github добавила на страницы проектов, которые используют стандартные Open Source лицензии, секцию, в которой эта лицензия указывается: 

В чём разница между популярными Open Source лицензиями? Объясняет Github 1

После переработки условий использования сервиса, которые прояснили (наконец-то) правовой статус GitHub относительно проектов, которые он хранит, компания решила пойти дальше в том, чтобы помочь пользователям разобраться, на что они имеют право, а на что — нет. С этой целью на страницу просмотра файла LICENSE из корневой директории проекта были добавлены краткие сведения о лицензии с сайта Choose A License:

В чём разница между популярными Open Source лицензиями? Объясняет Github 2

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

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

Пояснения некоторых значений таблиц

Разрешения * распространять, * использовать в коммерческих целях или * изменять работу значат ровно то, что написано — вы можете пользоваться этими правами, но лишь до тех пор, пока соблюдаете условия, указанные в секциях * “Требует” и * “Запрещает”.

Пункт *”Разрешает личное использование” (англ. private use) означает, что если вы изменяете работу, вы не обязаны её распространять — на своей машине вы можете делать с кодом всё, что захотите.

Пункт *”Предоставление патентных прав” означает что соавторы работы (контрибьюторы) отказываются от патентных прав (если они есть) на те части кода, которые они добавили; это гарантирует безопасность при использовании работы — иск на вас точно не подадут.

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

GNU AGPLv3

Разрешает:
* Коммерческое использование
* Распространение
* Изменение
* Личное использование
* Предоставление патентных прав

Требует:
* Распространять исходный код вместе с продуктом
* Упоминания авторства и лицензии в работе
*Указывать изменения, внесённые в работу
*Использование по сети приравнивается к распространению
* Производные продукта необходимо выпускать под той же лицензией

Запрещает:
* Отказ от ответственности
* Никакой гарантии

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

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

GNU GPLv3

Разрешает:
* Коммерческое использование
* Распространение
* Изменение
* Личное использование
* Предоставление патентных прав

Требует:
* Распространять исходный код вместе с продуктом
* Упоминания авторства и лицензии в работе
*Указывать изменения, внесённые в работу
* Производные продукта необходимо выпускать под той же лицензией

Запрещает:
* Отказ от ответственности
* Никакой гарантии

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

GNU LGPLv3

Разрешает:
* Коммерческое использование
* Распространение
* Изменение
* Личное использование
* Предоставление патентных прав

Требует:
* Распространять исходный код вместе с продуктом
* Упоминания авторства и лицензии в работе
*Указывать изменения, внесённые в работу
* Производные продукта необходимо выпускать под той же лицензией (но можно использовать продукт в качестве библиотеки)

Запрещает:
* Отказ от ответственности
* Никакой гарантии

От основной GPL лицензии эта отличается тем, что использование работы под LGPL в качестве части для большей работы (т.е. в качестве библиотеки) не накладывает требования лицензировать большую работу под LGPL, или открывать её исходный код. Но код самой библиотеки все равно должен предоставляться по первому требованию.

Mozilla Public License 2.0

Разрешает:
* Коммерческое использование
* Распространение
* Изменение
* Личное использование
* Предоставление патентных прав

Требует:
* Распространять исходный код вместе с продуктом (в случае использования в качестве библиотеки — только исходный код библиотеки)
* Упоминания авторства и лицензии в работе
* Производные продукта необходимо выпускать под той же лицензией (но можно использовать продукт в качестве библиотеки)

Запрещает:
* Отказ от ответственности
* Никакой гарантии
* Не передаются права на торговые марки

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

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

The MIT License

Разрешает:
* Коммерческое использование
* Распространение
* Изменение
* Личное использование

Требует:
* Упоминания авторства и лицензии в работе

Запрещает:
* Отказ от ответственности
* Никакой гарантии

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

Apache License 2.0

Разрешает:
* Коммерческое использование
* Распространение
* Изменение
* Личное использование
* Предоставление патентных прав

Требует:
* Упоминания авторства и лицензии в работе
* Указывать изменения, внесённые в работу

Запрещает:
* Никаких обязательств
* Никакой гарантии
* Не передаются права на торговые марки

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

The Unlicense

Разрешает:
* Коммерческое использование
* Распространение
* Изменение
* Личное использование
* Предоставление патентных прав

Требует:
(Ничего не требует)

Запрещает:
* Никаких обязательств
* Никакой гарантии

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

А как же остальные лицензии? Как же BSD?

Этого набора более чем достаточно, если вы хотите выбрать лицензию для своего Open Source проекта — не надо писать свою лицензию или использовать что-то более специфическое. Путаница, которая возникает из-за обилия лицензий и их совместимости друг с другом — актуальная проблема Open Source. Лицензия BSD достаточно популярна, но её сокращённый вариант полностью совпадает по смыслу с лицензией MIT, и GNU советуют использовать именно последнюю. Если же вы столкнулись с проектом, который использует какую-то нестандартную лицензию, и хотите узнать, что она вам разрешает, вы можете подсмотреть в шпаргалке на сайте Choose A License.

Следите за новыми постами
Следите за новыми постами по любимым темам
68К открытий68К показов