Подтвердить что ты не робот

Использование библиотеки LGPL в приложении Paid Android

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

4b9b3361

Ответ 1

Я всегда думал, что LGPL была очень "серой областью". Хотя есть особенности того, как использовать код/​​библиотеки LGPL и т.д., Это не обязательно отражает точные требования автора (ов).

Лично я бы рекомендовал обратиться к автору (-ам), объяснив ваши проблемы и спросив, готовы ли они использовать его.

Ответ 2

Если вы делаете платное приложение для Android, у вас, вероятно, возникнут проблемы с конкретной проблемой LGPL: заменимость. Как правило, в нем говорится, что при распределении совместной работы вы должны предоставить пользователю возможность заменить библиотеку другой версией (например, более новой). Очень сомнительно в случае файла DEX, как упоминалось в предыдущих комментариях.

Альтернативой одному файлу DEX является создание из зависимой библиотеки отдельного приложения, выпущенного на LGPL. В таком приложении вы создаете службу, к которой вы подключаетесь из своего платного приложения. Затем, чтобы заменить библиотеку LGPL на более новую версию, требуется только перекомпиляция и переустановка библиотеки APK.

Смысл, конечно, в том, что теперь у вас есть более одного APK для установки.

Ответ 3

Использование LGPL в бесплатном или платном приложении Android является законным, но для соответствия LGPL вам необходимо:

  • Дайте пользователю указание на используемую библиотеку и где найти исходный код;
  • Настроить proguard на не, чтобы запутать код, охватываемый LGPL;
  • Избегайте каких-либо проверок в вашем приложении о соответствии подписей;
  • Укажите пользователю, как заменить библиотеку.

В пункте 4 вы можете указать использование dex2jar, заменить код LGPL и переписать APK. Для пользователя требуется большая работа, но возможно сделать это и разрешить конечному пользователю рекомбинировать или повторно использовать код, как говорит LGPL. Кроме того, если ваше приложение использует какие-либо сервисы google, пользователю необходимо создать учетную запись для генерации собственного ключа api и т.д.

Ответ 4

Я не юрист, но из моего понимания GNU Lesser General Public License 3.0, section 4 explicity исключает статическое связывание, поскольку состояние требования:

Вы можете передать Комбинированную Работу по условиям вашего выбора, которые, вместе взятые, эффективно не ограничивают модификацию частей Библиотеки, содержащихся в Комбинированной работе, и обратной инженерии для отладки таких модификаций, , если вы также выполняете каждый из следующих:

  • [...]
  • d) Сделайте один из следующим образом:

    • 0) Передайте минимальный соответствующий источник в соответствии с условиями настоящей Лицензии и соответствующий код приложения в форме, подходящей и под условиями, которые позволяют пользователю рекомбинировать или повторно использовать приложение с модифицированную версию Связанной версии для создания модифицированной комбинированной работы в соответствии с разделом 6 GNU GPL для передачи Соответствующего источника.
    • 1) Используйте подходящий механизм разделяемой библиотеки для связывания с библиотекой. Подходящим механизмом является тот, который (а) использует во время выполнения копию Библиотеки, уже присутствующую в пользовательской компьютерной системе, и (б) будет корректно работать с модифицированной версией Библиотеки, совместимой с интерфейсом с Связанной версией.

(Подчеркните мой.)

Раздел 4d.0 невозможен по характеру Android APK: APK скомпилирован в Dex и подписан в целом, содержащий ссылки на библиотеки, и, следовательно, замена библиотек не может быть выполнена без исходного исходного кода, хранилища ключей и пароль хранилища ключей.

Раздел 4d.1 может быть возможен путем развертывания двух APK:

  • Один APK, содержащий библиотеку LGPL и, в свою очередь, с открытым исходным кодом и лицензированный под LGPL
  • Другой фирменный APK, ссылающийся на приложение LGPL.

Развертывание такого приложения, однако, невозможно напрямую через Google Play без специального требования, чтобы пользователь начал загружать зависимость LGPL, которую необходимо будет развернуть как отдельное приложение в Google Play. Это было бы очень утомительно для конечного пользователя, и реалистично не является вариантом для типичного потребительского приложения.

В соответствии с обсуждением с профессором Фалькеном в ответе Уильяма Тейта условия LGPL могут быть более применимы к библиотекам C, включенным через собственный код, поскольку они находятся внутри APK в виде отдельной библиотеки. Хотя APK не может быть подписан, можно переупаковать APK с замененным объектным файлом. С моей точки зрения, это технически соответствует требованиям лицензии.

Ответ 5

Библиотека droidText (используется для экспорта в формат PDF на Android и выпущена под LGPL) содержит подробное объяснение того, как использовать свою библиотеку и по-прежнему соблюдать LGPL:

http://code.google.com/p/droidtext/wiki/LGPLCompliance

Я нашел это очень полезным. В основном вы используете утилиту (dex2jar), чтобы взять банку библиотеки OUT из файла dex, что позволяет и конечным пользователям обновлять более позднюю версию библиотеки droidText, если они этого захотят.

Ответ 6

Это должно содержать основные проблемы: http://answers.google.com/answers/threadview/id/439136.html

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