GPL License

Общее

GNU General Public License (GPL) - это свободная лицензия на программное обеспечение, которая была создана в 1989 году Ричардом Столлманом и организацией Free Software Foundation (FSF). Она была разработана для защиты свободы программного обеспечения и обеспечения свободного доступа к исходному коду программ.

Существует три версии лицензии: GPLv1 (1989), GPLv2 (1991) и GPLv3 (2007, актуальная). В GPLv3 появились явная патентная клауза и защита от технических ограничений на модификацию. В семейство GNU-лицензий также входят LGPL (слабый копилефт для библиотек) и AGPL (копилефт, распространяющийся на веб-сервисы).

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

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

Эта лицензия имеет некоторые ключевые особенности:

  • При распространении программы пользователи должны получать доступ к ее исходному коду.

  • Измененные версии при распространении должны лицензироваться под GPL.

  • Если ваша программа является производной работой от GPL-кода и вы ее распространяете, вся программа должна распространяться под GPL. При этом обычный запуск GPL-программы как отдельного приложения (в том числе вызов по CLI или через API) обычно не создает производной работы.

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

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

По совместимости: код под BSD, MIT и Apache 2.0 можно включать в проекты под GPLv3. А вот GPLv2 с Apache 2.0 несовместима (такова позиция FSF - из-за патентных условий Apache).

Программное обеспечение, которое распространяется под GPL, может использоваться как в коммерческих, так и в некоммерческих целях. Эта лицензия широко используется в сообществе открытого исходного кода и защищает права пользователей на свободу и доступность программного обеспечения. Примеры - ядро Linux (GPLv2), GCC (GPLv3), WordPress (GPLv2).

Когда использовать

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

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

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

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

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

Ограничения лицензии

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

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

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

Обязательность использования той же лицензии. Если вы изменяете или распространяете программное обеспечение, выпущенное под GNU GPL, то все изменения должны быть также выпущены под этой же лицензии. Это означает, что если вы создаете производную работу, то вы не можете изменить лицензию этой работы.

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

Патентная клауза (GPLv3). Версия 3 содержит явный патентный грант: распространяя программу, вы предоставляете пользователям права на использование ваших патентов, относящихся к программе, и не можете использовать эти патенты для ограничения их прав. В GPLv2 явной патентной клаузулы нет.

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

Возможности лицензии

Лицензия GNU General Public License (GPL) предоставляет следующие основные привилегии:

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

Свободу изменения. Вы можете изменять программное обеспечение, выпущенное под GPL, и создавать производные работы на его основе.

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

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

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

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

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