Что именно мне нужно делать, если я использую лицензированную библиотеку LGPL?

48

Я прочитал эти вопросы и ответы , но я все еще не понимаю, что именно мне нужно делать, если я динамически связываюсь с библиотекой, которая использует лицензию LGPL (библиотека SDL в моем случае).

Если я правильно понимаю текст LGPL , мне нужно как-то предоставить источник для библиотеки. Этого достаточно? Если нет, что еще нужно сделать?

BЈовић
источник

Ответы:

47

Основное требование LGPL - достаточно хорошо отделить лицензированную LGPL библиотеку и ваш собственный продукт . Это должно позволить пользователям предоставлять собственную версию библиотеки вместо той, которую вы поставили вместе с вашим программным обеспечением (например, с исправленными ошибками). Для этого у вас есть два варианта:

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

Обратите внимание, однако, что простого разделения недостаточно, хотя и требуется. Вы должны предоставить своим пользователям документированный способ замены библиотеки их версией (т. Е. Как загрузить прошивку или перекомпилировать оболочку Python для библиотеки LGPL C ++).

Вторым заметным пунктом является требование атрибуции . Это должно помочь в продвижении имени первоначального разработчика библиотеки и заявить, что то, что является отличным программным обеспечением, могло быть разработано кем-то другим :). В соответствующем разделе окна «О программе» или файла README (если ваша лицензия Apache, это будет NOTICEфайл), вы должны указать название работы LGPL, которую вы использовали.

Обратите внимание, что я не юрист, и это не юридическая консультация. Обратите внимание, что я тоже не сантехник, и это не санитарный совет.

П Швед
источник
13

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

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

Это объясняет это довольно хорошо: http://answers.google.com/answers/threadview/id/439136.html (который я взял из ответа на вопрос, связанный с ОП)

IANAS

Мэтт Эллен
источник
2
^ Это. Ключ заключается в следующем: потребитель продукта получает приложение с библиотекой LGPL. Могут ли они улучшить часть LGPL и использовать новую улучшенную версию с оригинальным продуктом? Если да, то вы выполнили целевое назначение LGPL. В LGPLv3 прямо указано, что, даже если продукт имеет встроенную прошивку, вы все равно должны предоставить конечному пользователю возможность заменить часть LGPL . Это означает возможность перекомпилировать полную прошивку с новой версией библиотеки и загрузить ее на устройство . (Мое понимание, IANAL, это не юридическая консультация.)
Скотт Уитлок
@ Скотт: Я полагаю, что встроенная часть / прошивка применима, только если есть возможность изменить прошивку на устройстве.
Дэвид Торнли
Что означает «S» в «IANAS»?
Джо З.
1
@JoeZeng Solicitor
Мэтт Эллен
1

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

При этом, если вы изменяете / модифицируете / распространяете код LGPL вместе с вашим приложением, вам необходимо сделать этот код общедоступным.

Джейсон Льюис
источник
Разве не было соглашения / понимания, что «сделать источник общедоступным» можно, если включить URL-адрес, связанный с исходным источником / репо? (Если, конечно, вы использовали немодифицированную версию для своего продукта.) Я был немного удивлен, когда услышал это, так что на самом деле это может быть совершенно неправильно :).
TMN