Ограничения лицензирования с открытым исходным кодом GPL и LGPL [закрыто]

108

У меня проблемы с пониманием разрешений на использование открытого исходного кода. Я где-то читал, что GPL или LGPL предписывают, что программное обеспечение, использующее GPL, также должно быть выпущено с открытым исходным кодом. Я хочу создать приложение, использующее некоторую библиотеку распознавания изображений с открытым исходным кодом. Могу ли я продать это приложение или оно должно быть с открытым кодом?

Спасибо!

Rsinha
источник

Ответы:

81

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

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

Роберт Харви
источник
14
Обратите внимание, что в LGPL указано, что используемая библиотека должна быть заменяемой. Таким образом, статическое связывание невозможно.
Dykam
1
Значит, "DLL" (библиотека динамической компоновки) будет законной, верно?
Роберт Харви,
Только если вы также предоставите исходный код для этой библиотеки DLL, а также необходимые файлы заголовков или документацию, чтобы иметь возможность взаимодействовать с остальной частью приложения, если кто-то захочет сильно изменить или переписать с нуля, что DLL.
thomasrutter
49
  • GPL

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

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

  • LGPL

    Другие разработчики могут заимствовать, изменять код и повторно распространять его как часть своего собственного проекта при условии, что часть, используемая в рамках LGPL, будет повторно лицензирована в рамках LGPL. Другие части проекта могут иметь другие лицензии.

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

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

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

Thomasrutter
источник
30

IANAL, но концепции довольно просты.

Во-первых, вы и ваш юрист должны прочитать лицензии GPL и LGPL . Во-вторых, вы должны прочитать FAQ по GPL . Насколько я понимаю, вы можете думать об использовании библиотек GPL / LGPL следующим образом:

  • Если вы связываете динамически или статически с библиотекой GPL или LGPL, вы создали производную работу.
  • Если вы используете библиотеку под лицензией GPL и связываете ее с этой библиотекой, ваше программное обеспечение должно выпускаться с совместимой лицензией. .
  • Если вы используете библиотеку LGPL и динамически подключаете ее к этой библиотеке, ваше программное обеспечение не обязательно должно выпускаться с совместимой лицензией, но вы все равно должны соответствовать требованиям LGPL.
  • Если вы используете библиотеку LGPL и статически связываетесь с этой библиотекой, ваше программное обеспечение должно выпускаться с совместимой лицензией.
  • Лицензии GPL / LGPL означают «бесплатно», как в «свободе слова», а не «бесплатное пиво» . Вы можете создать производную работу и продать ее за большие деньги, но вы должны соблюдать GPL / LGPL.
Джаред Оберхаус
источник
29
«Во-первых, вы и ваш юрист должны прочитать лицензии GPL и LGPL». - убей меня сейчас
d512
10
"прямолинейно". Настолько прямолинейно, что вам нужно нанять юриста, чтобы посмотреть, сможете ли вы использовать немного кода. Вот почему разработчики никогда не должны использовать лицензии GPL.
Уомбл
9

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

Тем не менее, вы все равно можете продавать свое приложение и, наконец, единственное препятствие - предоставить исходный код своим клиентам.

Если библиотека, с которой вы связываете, является ограниченной публичной лицензией Gnu, также известной как LGPL, вам не нужно выпускать код вашего собственного приложения, но вы все равно должны выпустить все модификации, если вы изменили код lgpl'd.

Расджани
источник
«предоставить исходный код своим клиентам» - правда? только им? Я думал, что src нужно сделать общедоступным?
relascope
Я не носитель английского языка и не юрист. gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid утверждает, что большинство из них предоставляют источник всем, у кого есть доступ к двоичному файлу. Это не говорит о том, что кто-либо может запросить источник, но любой, кому был предоставлен двоичный файл, либо непосредственно от вас, либо от ваших прямых клиентов.
Расджани
прямо заявляет об этом, только для клиентов ... «Но если вы каким-то образом публикуете измененную версию, GPL требует, чтобы вы сделали измененный исходный код доступным для пользователей программы под GPL».
relascope
7

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

Вопрос использования немного сложнее. GNU / Linux выпускается под лицензией GPL. Ничто не запрещает вам писать программы, работающие под Linux, независимо от лицензии на ваше ПО. Однако вы не можете распространять Linux вместе со своим программным обеспечением. Это часто проблема с библиотеками, которые должны быть частью программы. Для этого и предназначена лицензия LGPL. Вы можете скомпилировать программу ac, которую вы пишете, с помощью gcc (следовательно, используя лицензированные библиотеки подпрограмм времени исполнения LGPL от gcc) и при этом выпускать программное обеспечение без ограничений GPL.

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

Надеюсь это поможет.

txwikinger
источник
4

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

Трубадур
источник