Що саме потрібно зробити, якщо я використовую бібліотеку з ліцензією LGPL?


48

Я прочитав ці питання та відповіді , але все ще не розумію, що саме мені потрібно робити, якщо я динамічно зв’язуюся з бібліотекою, яка використовує ліцензію LGPL (бібліотека SDL в моєму випадку).

Якщо я правильно розумію текст LGPL , мені потрібно якось надати джерело для бібліотеки. Цього достатньо? Якщо ні, що ще потрібно зробити?

Відповіді:


47

Основна вимога LGPL полягає в тому, щоб достатньо добре розділити бібліотеку, що має ліцензію LGPL, та власний продукт . Це повинно дозволяти користувачам надавати власну версію бібліотеки замість тієї, яку ви постачаєте разом із вашим програмним забезпеченням (наприклад, з виправленими помилками). Для цього у вас є два варіанти:

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

Зауважте, однак, що простої розлуки недостатньо, хоча і потрібно. Ви повинні надати своїм користувачам задокументований спосіб замінити бібліотеку їх версією (тобто, як завантажити прошивку або перекомпілювати обгортку Python для бібліотеки LGPL C ++).

Другий помітний пункт - вимога атрибуції . Це повинно сприяти просуванню імені оригінального розробника бібліотеки та констатувати, що те, що є класним програмним забезпеченням, може бути розроблено кимось іншим :). У відповідному розділі вікна "Про" або у файлі README (якщо ваша ліцензія Apache, це буде NOTICEфайл), слід вказати назву роботи, яку ви використовували LGPL.

Зауважте, що я не юрист, і це не юридична порада. Зауважте, що я теж не сантехнік, і це не санітарна порада.


13

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

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

Це пояснює це досить добре: http://answers.google.com/answers/threadview/id/439136.html (що я взяв з відповіді у запитанні, пов'язаному в ОП)

ІАНАС


2
^ Це. Ключове таке: споживач продукту отримує заявку з бібліотекою LGPL. Чи можуть вони вдосконалити частину LGPL та використати нову вдосконалену версію з оригінальним продуктом? Якщо так, то ви дотрималися наміченої мети LGPL. LGPLv3 чітко визначає, що навіть якщо в продукт вбудована прошивка, ви все одно повинні дати можливість кінцевому користувачеві замінити частину LGPL . Це означає можливість перекомпілювати повну прошивку з новою версією бібліотеки та завантажити її на пристрій . (Наскільки я розумію, IANAL, це не юридична порада.)
Скотт Вітлок,

@Scott: Я вважаю, що частина вбудованої / вбудованої програми застосовується лише в тому випадку, якщо можливо змінити прошивку на пристрої.
Девід Торнлі

Що означає "S" у "IANAS"?
Джо З.

1
@JoeZeng Solicitor
Метт Еллен

1

IANAL, але я розумію, що сенс LGPL полягає в тому, що він не "заражає" код залежно від нього, як GPL або AGPL. Таким чином, ви можете мати код LGPL як залежність, і вам нічого не потрібно робити.

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


Хіба не було домовленості / розуміння того, що "зробити доступним джерело доступним" можна було б задовольнити, включивши URL-адресу, яка посилається на початкове джерело / репо? (Припустимо, що ви використовували немодифіковану версію для свого продукту, звичайно.) Я трохи здивувався, коли почув це, так що насправді це може бути неправильно :).
TMN
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.