Обмеження ліцензування відкритого джерела GPL та LGPL [закрито]


107

У мене виникають проблеми з розумінням дозволів на використання відкритого коду. Десь я читав, що GPL або LGPL застосовують те, що програмне забезпечення, яке використовує програмне забезпечення GPL, також повинно виходити з відкритим кодом. Я хочу створити додаток, який використовує деяку бібліотеку розпізнавання зображень з відкритим кодом. Чи можу я продати цю програму чи вона повинна бути з відкритим кодом?

Дякую!

Відповіді:


80

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

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


14
Зверніть увагу, що LGPL повідомляє, що використовувана бібліотека повинна бути заміною. Таким чином, статичне з'єднання неможливо.
Dykam

1
Отже, "DLL" (бібліотека динамічних посилань) було б законним, правда?
Роберт Харві

Тільки якщо ви також надаєте вихідний код для цієї DLL, а також необхідні файли заголовків або документацію для того, щоб мати можливість взаємодіяти з рештою програми, хтось хоче сильно змінити або переписати з нуля, DLL.
thomasrutter

48
  • GPL

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

    Це запобігає використанню коду у власному програмному забезпеченні.

  • LGPL

    Інші розробники можуть запозичити та змінити код та повторно розповсюдити його як частину власного проекту, за умови, що частина, що використовується в рамках LGPL, буде повторно ліцензована під LGPL. Інші частини проекту дозволені, мають інші ліцензії.

    Це дозволяє використовувати код у власному програмному забезпеченні.

LGPL має ряд додаткових умов, які необхідно виконати, щоб мати можливість поширювати його в проекті з іншою ліцензією. Наприклад, вона повинна бути можливою для будь-якогоКористувач готового програмного забезпечення може змінювати, перекомпілювати або замінювати частину програмного забезпечення, що ліцензується за LGPL, та використовувати цей модифікований код з тим же програмним забезпеченням. Якщо ви публікуєте власницьке програмне забезпечення, яке містить якийсь код LGPL, одним із способів задоволення цієї вимоги є розміщення коду LGPL в окремій динамічно пов'язаній бібліотеці та розповсюдження разом із вашим програмним забезпеченням необхідних файлів заголовків та документації, необхідних для повторної компіляції LGPL частина таким чином, що вона все ще може бути пов'язана та використана з програмним забезпеченням, як передбачено. Неприпустимо вживати заходів для запобігання модифікації коду LGPL, таких як оскарження самого коду або файлів API та заголовків.

Зауважте, що LGPL сумісний з GPL: ви можете вибрати "оновити" код до GPL та включити його в проект, повністю ліцензований GPL, як це зазначено в моєму першому пункті, якщо ви хочете. Однак ви не можете піти іншим шляхом і повторно ліцензувати ліцензійний код GPL як LGPL.


30

IANAL, але поняття досить прості.

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

  • Якщо ви динамічно чи статично зв’язуєтесь із бібліотекою GPL або LGPL, ви створили похідну роботу.
  • Якщо ви використовуєте бібліотеку, яка є GPL, і ви пов'язуєтесь із цією бібліотекою, ваше програмне забезпечення повинно бути випущено з сумісною ліцензією .
  • Якщо ви використовуєте бібліотеку, що є LGPL, і ви динамічно зв’язуєтеся з цією бібліотекою, ваше програмне забезпечення не повинно випускатися з сумісною ліцензією, але ви все одно повинні відповідати LGPL.
  • Якщо ви використовуєте бібліотеку, що є LGPL, і ви статечно зв'язуєтесь з цією бібліотекою, ваше програмне забезпечення повинно бути випущено з сумісною ліцензією.
  • Ліцензії GPL / LGPL означають "вільне", як у "вільній мові", а не "безкоштовне пиво" . Ви можете створити похідний твір і продати його за великі гроші, але ви повинні відповідати GPL / LGPL.

29
"По-перше, ви та ваш адвокат повинні прочитати ліцензії GPL та LGPL." - вбий мене зараз
d512

10
"прямолінійний". Насправді просто, що вам потрібно залучати юриста, щоб побачити, чи можете ви використовувати трохи коду. Ось чому розробники ніколи не повинні використовувати ліцензії GPL.
Womble

9

Якщо ви вирізаєте та вставте чи пов'язуєте код GPL'd у вашій програмі, ваша програма повинна мати ліцензію відповідно до GPL, і тоді вам потрібно буде випустити код.

Однак ви все ще можете продати свою програму та afaik. Єдине зобов’язання - ви випустите вихідний код своїм клієнтам.

Якщо бібліотека, з якою ви посилаєтесь, є ліцензією Lesser Gnu Public License, яка називається LGPL, тоді вам не потрібно випускати код власної програми, але ви все одно зобов'язані випустити всі модифікації, якщо ви змінили код lgpl'd.


"випустити вихідний код своїм клієнтам" - справді? тільки їм? Я думав, що src повинен зробити публічно доступним?
реласкоп

Я не носій англійської мови, ані юрист. gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid стверджує, що найбільше надають джерело кожному, хто має доступ до двійкового файлу . Це не говорить про те, що будь-хто може запитувати джерело, але кожен, хто отримав цей двійковий файл, безпосередньо від вас або від ваших прямих клієнтів.
rasjani

констатує це безпосередньо, лише для клієнтів ... "Але якщо ви випустите модифіковану версію для публіки якимось чином, GPL вимагає, щоб ви модифікований вихідний код був доступний для користувачів програми під GPL."
реласкоп

7

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

Питання використання трохи складніше. GNU / Linux випускається під GPL. Ніщо не забороняє вам писати програмне забезпечення, яке працює під Linux, незалежно від ліцензії вашого програмного забезпечення. Однак ви не можете поширювати Linux разом зі своїм програмним забезпеченням. Це часто проблема з бібліотеками, які повинні бути частиною програми. Саме для цього призначена ліцензія LGPL. Ви можете компілювати програму змінного струму, яку ви пишете за допомогою gcc (отже, використовуючи ліцензовані бібліотеки виконання програми з ліцензією LGPL від gcc) і все одно випускати програмне забезпечення без обмежень GPL.

Я думаю, що це загальна суть цього. Однак це не в жодному разі юридична порада. Для отримання юридичної консультації ви повинні мати дипломованого адвоката, який може надати вам юридичну консультацію відповідно до ваших конкретних обставин.

Сподіваюся, це допомагає.


3

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.