Применение [L]GPL к коду Java/C#

Как лицензию [L]GPL следует применять к коду Java и C#? Я знаю, что когда Sun JDK стал GPL, они сделали особые исключения для стандартных библиотек.

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

  • ... Могу ли я использовать библиотеку под GPL (импортируя ее классы)?
  • ... могу ли я использовать LGPL
  • ... могло ли мое приложение работать поверх сервера приложений под GPL (используя его сервисы и API)

На все вышеперечисленные вопросы GPL = GPL v.2.

Спасибо

4 ответа

Решение

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

Тем не менее, вот мой совет:

  1. Вам не следует ссылаться на приложение или библиотеку GPL, если вы не хотите распространять свой код как GPL.
  2. Что касается LGPL, вы, возможно, захотите проверить с правообладателем, но Free Software Foundation разъяснил свою интерпретацию LGPL в отношении Java: LGPL и Java Дэвидом Тернером.
  3. Если вы расширяете GPL-фреймворк (например, сервер приложений), вам необходимо следовать лицензии фреймворка.
  4. Если вы используете что-то вроде SOAP для доступа к сервису, вы должны быть в порядке под GPLv2. Если вы используете RMI, то, возможно, ситуация иная, потому что заглушки, на которые вы бы ссылались, вероятно, будут находиться под лицензией GPL.

Теперь, если вы беспокоитесь о времени выполнения Java, я не думаю, что вам нужно беспокоиться. Я был бы удивлен, если бы Sun сделала Java только для GPL. У них слишком много клиентов, которые зависят от того факта, что Java можно расширять и использовать для создания проприетарных приложений. Часто программное обеспечение выпускается под несколькими лицензиями, что позволяет пользователю выбирать термины (например, Firefox использует этот подход и имеет три лицензии: GPL, LGPL и MPL).

Независимо от приверженности Sun открытому исходному коду, вы можете лицензировать свое Java-приложение с GPL, LGPL, MIT или даже с так называемыми "проприетарными" лицензиями.

"... могу ли я использовать библиотеку под GPL(импортируя ее классы)?" Нет. Если это не чистый GPL(он может иметь двойную лицензию, иметь "исключение classpath" или что-то в этом роде или иметь общедоступный интерфейс для внешнего доступа). Однако это применимо только в том случае, если вы распространяете свое приложение. Если ваше приложение использовалось ТОЛЬКО для внутреннего использования, вам не нужно распространять исходный код.

"... могу ли я использовать один LGPL" Вы можете ссылаться на код LGPL, если храните его в отдельном файле. В случае Java храните код LGPL в отдельной банке. В случае C# храните его в отдельной DLL. Вы можете включить код LGPL в свое приложение, если разрешите конечному пользователю заменить его в любом случае (но это может быть сложнее, чем просто оставить его в виде отдельного файла)

"... могло ли мое приложение работать поверх сервера приложений GPL(используя его сервисы и API) ". Нет, если только у этих сервисов /API нет другой лицензии.

Смотрите также: https://stackru.com/questions/137048/how-do-i-tell-if-i-can-re-use-a-free-software-library-in-a-commercial-app

IANAL, но я думаю, что важно помнить, что GPL зависит от авторских прав. Поэтому все, что допустимо в соответствии с законом об авторском праве, допустимо в соответствии с GPL. Например, GPL запрещает создавать производную работу и связывать ее с не-GPL модулем. Такого рода аргумент используется, например, для предотвращения использования бинарных модулей ядра Linux. Однако нельзя считать, что модуль, который не является производной от Ядра, подпадает под действие авторского права ядра и, следовательно, не обязательно должен быть GPL. Примечание: получающееся ядро ​​с модулем может считаться производной работой, и доказательство того, что модуль НЕ является производной работой, может быть проблемой. Но это не разрезано и не высушено.

Кроме того, GPL содержит исключения для базовой операционной системы, которая позволяет связать программное обеспечение GPL с несвободными библиотеками платформы. Это позволяет свободному программному обеспечению работать на несвободных платформах. Можно привести аргумент в пользу того, что JVM - это платформа, и, может быть, даже что-то вроде сервера приложений J2EE - это платформа. Возможно, вам не разрешат распространять веб-приложение GPL И платформу вместе, но веб-приложение GPL, портированное на Websphere (например), может по-прежнему быть совместимым с GPL.

Учитывая сложности, имело бы смысл поговорить об этом с адвокатом.

[rant] GPL и LGPL - ужасные лицензии, написанные очень плохими юристами, которые не могут понять свою терминологию. Так что можно догадаться, что они на самом деле значат и как они применяются в реальных ситуациях [/rant]

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

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

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

Что касается работы внутри сервера приложений под GPL, у вас определенно все в порядке, если вы придерживаетесь стандартных API (сервлетов, jsps, JMX и т. Д.). Если вам нужно использовать API, проприетарные для сервера, вопрос более сложный, поэтому я бы определенно поговорил с юристом, хотя, скорее всего, владельцы кода App Server намерены разрешить такое использование.

Другие вопросы по тегам