AGPL - что вы можете делать и что вы не можете

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

Моя неопределенность подпитывается этим сообщением об MongoDB (который является AGPL), и даже больше комментарии ниже.

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

Случай с MongoDB заключается в том, что он использует лицензию Apache для кода клиента, что ставит другой вопрос. Что произойдет, если вы используете программное обеспечение AGPL, но развертываете его как другое приложение, которое является коммерческим? Например, возьмите iText - это библиотека AGPL:

  • , если вы его используете и модифицируете, вам нужно открывать исходное все ваше приложение или вам нужно перераспределять только изменения в iText?
  • , если вы используете его, а не его изменить, вам нужно открыть все ваше приложение с открытым исходным кодом?
  • Если вы завершаете iText в другом приложении, которое вы запускаете как отдельный процесс, но используете его из основного приложения, должны ли вы открывать исходное все или просто приложение-оболочку? (Приложение-оболочка будет API-интерфейсом на основе HTTP, который будет принимать pdf-файлы и вернет результаты использования iText в качестве JSON). Может ли это использоваться для обхода лицензии AGPL?

Примечание. Вопрос о AGPLv3

148 голосов | спросил Bozho 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 13 Sep 2011 17:11:57 +0400 2011, 17:11:57

3 ответа


84

Отчеты GPLv3 и AGPLv3 " virality "сильно преувеличены

Случай 1: Если вы

  • используйте библиотеку X , которая входит в GPLv3 или AGPLv3,
  • используйте как библиотеку (то есть, сохраняя ее как отдельную объект без копирования исходного кода из библиотеки в ваш собственный исходный код),
  • и не изменять его,

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

Случай 2: Если вы

  • используйте библиотеку X, которая входит в GPLv3 или AGPLv3,
  • изменить исходный код, но все же
  • используйте как библиотеку (то есть, сохраняя ее как отдельную объект без копирования исходного кода из библиотеки в ваш собственный исходный код),

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

Почему это так?

Оба GPLv3 и AGPLv3 основаны на следующих определениях (в разделе 0):

"The Program" refers to any copyrightable work licensed 
under this License. [...]

To "modify" a work means to copy from or adapt all or 
part of the work in a fashion requiring copyright permission, 
other than the making of an exact copy. 
The resulting work is called a "modified version" 
of the earlier work or a work "based on" the earlier work.

Остальная часть лицензий говорит только о «программе», «работа» или «измененная работа». Он не говорит о вашем программном обеспечении, которое просто использует эту работу.

Последующие условия лицензий позволяют вы

  • , чтобы изменить работу (раздел 2)
  • для распространения исходного кода измененной или немодифицированной работы (Разделы 4 и 5).
  • для распространения объектного кода модифицированной или немодифицированной работы (Раздел 6)

Эти последующие термины лицензий требуют вас

  • также предоставить доступ к «Соответствующему источнику» работы если вы распространяете объектный код измененного или немодифицированного работа (раздел 6)
  • , чтобы сделать это, если вы вообще не распространяете модифицированную работу, а скорее предоставляют свои услуги через сеть (Раздел 13, только AGPL)

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

Действительно ???

Да.

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

Лучший короткий правовой источник, который я смог найти, подтверждает это взгляд - Патрис-Эммануэль Шмитц ' «Почему вирусное лицензирование является призраком» . В нем объясняется, что интерфейсы давно признаны в законе как подходящие границы требований к авторскому праву.

Заметка о «производных работах»

Обратите внимание, что приведенные выше сведения касаются версии 3 GPL и AGPL только. Ситуация в этих случаях представляется достаточно ясной.

Однако, GPLv1 и GPLv2 использовал понятие" производная работа "в примерно в тех местах, где GPLv3 говорит о «измененной работе». Большая часть обсуждения виральности по-прежнему использует понятие «производная работа» (или иногда ложно «производная работа»).

Разные вещи в случае GPLv1 или GPLv2? ​​

Нет. «Производная работа» - это технический термин из авторского права и относится к работе, которая сама по себе заслуживает авторского права. Это не относится к комбинации библиотеки X plus ваше собственное программное обеспечение, использующее его:

  • Код объекта (если это то, что вы распространяете) сам по себе никогда не заслуживает авторского права, поскольку он производится бессмысленными компиляторы и т. д., а не люди. Только основной исходный код сам по себе является причиной рассмотрите авторское право. (Что авторское право распространяется на объект кода, но только для соответствующих частей.)
  • То же самое справедливо для «менее двоичных» представлений, таких как как файлы JAR, содержащие байт-код или даже ZIP-файлы проведение дистрибутивов исходного кода для PHP, Python или Ruby приложения.
  • Исходный код вашего программного обеспечения заслуживает авторских прав независимо от библиотеки X: возьмите X иостаток явно и обязательно остается защищенной авторским правом. Таким образом, вы не получили от X, вы только в сочетании с ним. (Сравните это с изображением Моны Лизы с усами: Усы сами по себе больше не будут сопоставимой работой.)

См. также объяснение адвоката Лоуренса Розена и снова Почему вирусное лицензирование является призраком .

"Но Ричард Столлман говорит ..."

Да, действительно: В свете этой дискуссии, некоторые из утверждений, которые можно найти в Часто задаваемые вопросы GPL на веб-сайте GNU /FSF вводят в заблуждение. В частности, один FAQ говорит (по состоянию на 2017-03-22) что связывание вашего программного обеспечения с библиотекой GPLed (даже связывая ее динамически) создаст a «комбинированная работа» . Оооо. Звучит вирусно? Да. Но GPL не говорит о «комбинированных работах» , он говорит только о «модифицированных работах», поэтому это утверждение не имеет никакого отношения к лицензии.

Хотите узнать больше? В вышеупомянутом FAQ указано, что "Связывание покрытой GPL работы статически или динамически с другими модулями выполняет комбинированную работу основанный на покрытой GPL работе ». и приходит к выводу, что весь результат будет покрыт GPL. Однако «на основе» (как вы уже узнали выше) является юридическим термином в GPL и эквивалентен на «измененную работу». В GPL (как вы уже узнали выше) «модифицировать» средства ", чтобы скопировать или адаптировать всю или часть работы в моду требуя разрешения на использование авторских прав, , кроме создания точная копия . " [выделено курсивом]

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

Что говорит сам Ричард Столлман? Ричарду Столлману нравится идея, что все программное обеспечение должен быть бесплатным, но он не претендует на инфекционность кода GPL. Он говорит "Область GPL не распространяется по близости или контакту, только путем преднамеренного включения кода GPL в вашу программу.

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

Отказ

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

ответил Lutz Prechelt 6 PMpWed, 06 Apr 2016 16:08:09 +030008Wednesday 2016, 16:08:09
32

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

Использование отдельных процессов может обходить (A) GPL, но это мрачная земля. Если ваше конечное приложение зависит от внешнего процесса, так что он не будет функционировать должным образом без него, тогда он будет считаться производной работой программного обеспечения AGPL.

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

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

ответил Mark H 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 13 Sep 2011 19:32:46 +0400 2011, 19:32:46
6

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

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

Что касается Mongo, я предполагаю, что приложения, использующие его, не используют его код, а только некоторый API, который не лицензирован AGPL.

ответил Let_Me_Be 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 13 Sep 2011 18:21:08 +0400 2011, 18:21:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132