Могу ли я использовать лицензионные плагины Apache Software License, версии 2.0 и GNU LGPL 3 в своем коммерческом веб-приложении?

31

У меня есть два плагина. Один имеет лицензию GNU LGPL 3, а другой - лицензию на программное обеспечение Apache версии 2.0. Могу ли я использовать их в моем коммерческом приложении? И если да, какие меры предосторожности я должен предпринять?

umairaslam
источник
17
Имейте в виду, что вы НИКОГДА не должны следовать юридическим советам, которые вы получаете в Интернете, за исключением случаев, когда они исходят от адвоката. Предпочтительно тот, кто специализируется в данной области, в данном случае: лицензии на программное обеспечение. Поэтому принимайте все ответы, которые вы получаете, с небольшим количеством соли, потому что в противном случае вы можете подвергать себя судебным процессам (поскольку ваше приложение является коммерческим).
Раду Мурзеа

Ответы:

34

Могу ли я использовать их в моем коммерческом приложении?

Это зависит от того, что вы собираетесь делать с программным обеспечением, которое вы производите.

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

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

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

  • Для LGPL ограничение (см. Выше) распространяется только на исходный код самой библиотеки LGPL; т.е. если вы меняете библиотеку. Если вы просто используете библиотеку, вы не обязаны предоставлять исходный код.

    Существует также ограничение, согласно которому код LGPL в вашем приложении должен заменяться пользователем вашего кода. Это означает (по сути), что если вы распространяете свой код только в виде двоичных файлов, то вы не можете статически связать свой код с этой библиотекой. Вы должны использовать динамическое связывание.

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

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

И если да, какие меры предосторожности я должен предпринять?

Для LGPL и ASL никаких мер предосторожности не требуется.

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


1 - Для целей этого ответа ASL == Apache Software License версии 2.

Стивен С
источник
Относится ли это к веб-приложению? Я имею в виду, что клиент получит только файл war, содержащий файлы .class и .JAR. Если все LGPL все еще в порядке?
Java Main
Если вы не изменяете библиотеки LGPL, вы можете включить их в код WAR в файле WAR. Но вам нужно сделать это так, чтобы человек, которому вы распространяете ваш код, мог заменить код LBPL другой версией. «Uber-JAR», вероятно, является нарушением. Запутывание библиотек LGPL вместе с вашим кодом, безусловно, является нарушением. (IANAL)
Стивен К
Есть папка с именем lib, в которую я помещаю все файлы jar. Таким образом, он может заменить любой файл Jar другой версией. Но я не гарантирую, что это будет работать всегда. Это все еще хорошо?
Java Main
Спросите своего адвоката :-)
Стивен C
Это обычное веб-приложение, работающее на tomcat. Если вы можете помочь, будет хорошо. В любом случае, спасибо за ваши разъяснения, которые действительно помогают.
Java Main
5

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

Для использования в приложении с закрытым исходным кодом это фактически означает, что вы можете использовать лицензионный плагин Apache без ограничений и что лицензионный плагин LGPL должен быть динамически связан.

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

Барт ван Инген Шенау
источник
BartvanIngenSchenau Что вы подразумеваете под «закрытым исходным кодом» приложение? Вы имеете в виду упакованное решение (не распространяющее исходный код), или вы ссылаетесь на его распространение внутри организации, а не на коммерческое распространение?
Рэйчел
1
@Rachael: «Закрытый исходный код» обычно используется для обозначения программного обеспечения, исходный код которого не распространяется. Распределение внутри организации является немного особый случай , когда речь идет о лицензировании авторского права, поскольку предоставление копий программного продукта для людей в организации не рассматривается распределение для большинства законов об авторском праве (он будет считать копирование).
Барт ван Инген Шенау
-4

Прежде всего, это не юридическая консультация.

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

Короче говоря, вы ссылаетесь на существующую библиотеку LGPL (назовите это первой стороной), но программное обеспечение, которое делает эту ссылку, должно быть сделано LGPL. Назовите эту программу второй стороной. Хотя программное обеспечение сторонних производителей должно быть выпущено как LGPL, как владелец программного обеспечения сторонних производителей вы можете разрешить другим программам использовать его за пределами LGPL (при условии, что программное обеспечение сторонних производителей также доступно в рамках LGPL). Другими словами, программное обеспечение сторонних производителей должно быть доступно как LGPL, но не обязательнолицензировать его как LGPL во всех случаях. Каждый отдельный пользователь программного обеспечения должен иметь лицензию на использование указанного программного обеспечения в соответствии с законом. Я хочу сказать, что пока каждый пользователь имеет доступ к программному обеспечению, как LGPL, вы также можете лицензировать его, используя не вирусные условия. Вы также можете создавать стороннее программное обеспечение, фактически лицензируя стороннее программное обеспечение для использования сторонним программным обеспечением на условиях, отличных от LGPL. Я даже слышал о людях, которые пишут себе контракт и лицензию на использование своего программного обеспечения. Закон может быть странным! Стороннее программное обеспечение не обязательно должно быть LGPL в любом случае.

Итак, вы делаете, создаете библиотеку, которая ссылается на библиотеку LGPL как просто оболочку, и выпускаете оболочку как LGPL. Затем вы можете ссылаться на эту оболочку ( вашу оболочку) в программном обеспечении, не принадлежащем LGPL, при условии, что ваша оболочка доступна как LGPL.

Я не могу говорить за лицензию на программное обеспечение Apache, потому что я не знаком с ней.

JSON
источник
Обратите внимание, что я использую термин «ссылка» очень обобщенно, потому что это относится не только к скомпилированным языкам, но также может включать «включая» программное обеспечение LGPL (из локального или сетевого местоположения, например, с PHP или Javascript), или иным образом «связывание» с программным обеспечением по сети, такой как Java RMI и т. д.
JSON
1
«Программное обеспечение GPL не разрешается связывать (в том числе по сети), компилировать в него или поставлять с программным обеспечением не-GPL любой формы». , "Или" должно быть "и". Вы МОЖЕТЕ использовать программное обеспечение под GPL в программном обеспечении, не принадлежащем GPL, если вы его не «отправляете».
Стивен С.
2
Этот ответ неверен на многих уровнях. Вопрос не в GPL, а в LGPL. Код ASL может быть интегрирован в код практически любой другой лицензии, что означает также LGPL или даже GPL (даже если запрещено). Вы даже можете использовать его в программном обеспечении с закрытым исходным кодом. И, как указал Стивен С., вы можете делать все, что хотите, до тех пор, пока вы не опубликуете это или не сделаете его доступным для общественности.
Алексис Дафреной,